2016-05-03 2 views
2

В файле произвольно сгенерированных паролей моя цель - попросить пароль, проверить файл «codes.txt», чтобы узнать, существует ли он, сказать «ВХОД ПОЛНЫЙ» в течение 5 секунд, удалить пароль, затем закройте файлы. Когда я достигаю цикла while, я ничего не работаю так, как мне нужно. В разных ситуациях он имеет разные результаты, ничто из того, что я могу понять. Я даже не понял, как удалить материал на консоли через 5 секунд после печати «LOGIN COMPLETE». Если бы кто-нибудь мог мне помочь сейчас, я был бы очень признателен. Мой код расположен ниже.Ошибка поиска слова в файле

package password; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Random; 
import java.util.Scanner; 


public class Password { 

    public void creator() throws IOException { 

     FileWriter fw = new FileWriter(new File("codes.txt")); 
     PrintWriter out = new PrintWriter(fw); 

     char[] chars = "abcdefghijklmnopqrstuvwxyz1234567890".toCharArray(); 

     Random random = new Random(); 

     for (int x = 0; x < 51; x++){ 
      String word = ""; 
      for (int i = 0; i <= 10; i++) { 

       char c = chars[random.nextInt(chars.length)]; 
       word+=c; 

      } 
      out.println(word); 
     } 
     fw.close(); 
    } 

    public void readit() throws FileNotFoundException, InterruptedException { 
     File file = new File("codes.txt"); 

     Scanner input = new Scanner(file); 

     //prints each line in the file 
     while (input.hasNextLine()) { 
      String line = input.nextLine(); 
      System.out.println(line); 
     } 
     Thread.sleep(10000); 
     input.close(); 
    } 

    public void checkit() throws FileNotFoundException, IOException, InterruptedException { 

     File checkFile = new File("codes.txt"); 
     File tempFile = new File("tempFile.txt"); 

     Scanner input = new Scanner(System.in); 
     Scanner reader = new Scanner(checkFile); 
     FileWriter fw = new FileWriter(tempFile); 
     PrintWriter out = new PrintWriter(fw); 

     System.out.println("What is the password?"); 
     String word = input.nextLine(); 

     while(reader.hasNextLine()) { 
      String line = input.nextLine(); 
      if(line.equals(word)){ 
       System.out.println("LOGIN COMPLETE"); 
       Thread.sleep(5000); 
      } else { 
       out.println(line); 
      } 
     } 

     reader.close(); 
     fw.close(); 
     checkFile.delete(); 
     tempFile.renameTo(checkFile); 
    } 
} 

Основной файл приведен ниже.

package password; 

import java.io.FileNotFoundException; 
import java.io.IOException; 



public class Main { 
    public static void main(String[] args) throws IOException, FileNotFoundException, InterruptedException { 
     Password pass = new Password(); 

     pass.creator(); 
     pass.readit(); 
     pass.checkit(); 
    } 
} 

Я новичок в java, поэтому для того, чтобы понять код, используйте простой код для начинающих.

+0

Как удалить то, что на консоли будет зависеть от консоли. – MikeCAT

+0

'Я даже не понял, как удалить материал на консоли через 5 секунд. Это даже не просто тривиально. Вы должны использовать проклятия или что-то еще? Удаление вещи с консоли - это не стандартная вещь. – Falmarri

+1

Мне просто нужно очистить информацию о выходе из System.out.println, если это не ясно –

ответ

0

В конце концов, я решил, что нет необходимости очищать экран консоли в Netbeans, и я просто оставлю его как есть. Я хочу дать решение, которое я получил в конце, для тех, кто смущен тем, что я хотел, и для тех, у кого могут быть те же проблемы, что и я.

package password; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Random; 
import java.util.Scanner; 


public class Password { 

    //Makes 50 random passwords(ten characters using letters and numbers) 
    public void creator() throws IOException { 

     FileWriter fw = new FileWriter(new File("codes.txt")); 
     PrintWriter out = new PrintWriter(fw); 

     char[] chars = "abcdefghijklmnopqrstuvwxyz1234567890".toCharArray(); 

     Random random = new Random(); 

     for (int x = 0; x < 51; x++){ 
      String word = ""; 
      for (int i = 0; i <= 10; i++) { 

       char c = chars[random.nextInt(chars.length)]; 
       word+=c; 

      } 
      out.println(word); 
     } 
     fw.close(); 
    } 

    //prints passwords for 10 seconds 
    public void readit() throws FileNotFoundException, InterruptedException { 
     File file = new File("codes.txt"); 

     Scanner input = new Scanner(file); 

     //prints each line in the file 
     while (input.hasNextLine()) { 
      String line = input.nextLine(); 
      System.out.println(line); 
     } 
     Thread.sleep(10000); 
     input.close(); 

    } 

    //asks for password and if it's correct then states LOGIN COMPLETE and then adds exceptions to a temporary file then readds to main file then closes 
    public void checkit() throws FileNotFoundException, IOException, InterruptedException { 

     File file = new File("codes.txt"); 
     FileWriter fw = new FileWriter(new File("code.txt")); 
     PrintWriter out = new PrintWriter(fw); 


     Scanner reader = new Scanner(file); 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a password"); 
     String word = input.nextLine(); 

     //prints each line in the file 
     while (reader.hasNextLine()) { 

      String line = reader.nextLine(); 
      if (line.equals(word)) { 
       System.out.println("LOGIN COMPLETE"); 
       Thread.sleep(5000); 
      } else { 
       out.println(line); 
      } 
     } 
     reader.close(); 
     fw.close(); 

     File file2 = new File("code.txt"); 
     Scanner reader2 = new Scanner(file2); 
     FileWriter fw2 = new FileWriter(new File("codes.txt")); 
     PrintWriter out2 = new PrintWriter(fw2); 

     while (reader2.hasNextLine()) { 
      String line = reader2.nextLine(); 
      out2.println(line); 
     } 
     file2.delete(); 
     fw2.close(); 
     System.exit(0); 
    } 
} 

Главная файла ниже:

package password; 

import java.io.FileNotFoundException; 
import java.io.IOException; 



public class Main { 
    public static void main(String[] args) throws IOException, FileNotFoundException, InterruptedException { 
     Password pass = new Password(); 

     pass.creator(); 
     pass.readit(); 
     pass.checkit(); 
    } 
} 
Смежные вопросы