Сама суть задачи - проверка логина и пароля. Сначала мы регистрируемся(1) - данные записываются в файл(2) - мы вводим данные(3) - программа проверяет соответствие данных(4) - входим в систему(5.1)/ выдает ошибку(5.2) => повтор действия №3(5.2.1).
У меня не работают пункты №4 (частично) и №5.2.1 . Через BufferedReader не получилось, хоть оно и правильно считывает, как я понял, там адреса разные. Подскажите, пожалуйста, какую функцию я должен написать, чтобы программа правильно сверяла данные из консоли и из текстового файла. И правильно ли я написал способ повтора метода с помощью k?
В итоге я попросту переписал свой код с нуля и он заработал.
Вот код:
import java.io.*;
import java.util.Scanner;
public class FL {
public static void main(String[] args) throws IOException {
String login, pass, name="User"; int a=0;
File LP = new File("LogPass.txt");
if (!LP.exists()) LP.createNewFile();
FileReader fr = new FileReader(LP);
FileWriter fw = new FileWriter(LP, true);
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
Scanner sc = new Scanner(System.in);
System.out.printf("Welcome!\n");
System.out.println("Press 1 to LogIn;\nPress 2 to SignIn;\nPress 3 to exit system.");
a = sc.nextInt();
switch (a) {
case 1:
System.out.println("Enter your Login: ");
sc.nextLine();
login = sc.nextLine();
bw.write(login);
System.out.println("Enter your Password: ");
pass = sc.nextLine();
bw.newLine();
bw.write(pass);
bw.flush();
bw.close(); break;
case 2:
System.out.println("Login: ");
sc.nextLine();
login = sc.nextLine();
System.out.println("Password: ");
pass = sc.nextLine();
if (login.equals(br.readLine()) && pass.equals(br.readLine()))
System.out.println("You are in, "+name+"!"); else System.out.println("Wrong login or password...");
break;
default: System.exit(0); break;
}
}
}