Как я могу закодировать свою программу, чтобы строки, которые у меня есть в моем arraylist, действительно были удалены?
Поэтому я создал программу, в которой пользователь будет вводить пароль и имя пользователя. Программа возьмет текстовый файл, в котором хранится эта информация, и преобразует его в arraylist. Как только информация будет проверена, это имя пользователя и пароль будут удалены из списка arraylist. Пользователь не сможет снова войти в систему, если только программа не будет перезапущена.
Моя проблема заключается в том, что информация о пользователях никогда не удаляется из списка arraylist.
Вот мой код:
import java.io.*; import java.util.*; public class LoginPagev2 { public static void main(String[] args) throws IOException { String answ; String user; String pass ; int counter = 0; Scanner keyboard = new Scanner(System.in); System.out.println("Welcome! This program will allow you to sign in with a username and password you created."); System.out.println("If you fail to login correctly 3 times, this program will terminate. You can only sign in once per username."); System.out.println("If you wish to sign in into the same account twice, you must restart the program."); while(true) { System.out.print("Would you like to sign in? (Y/N): "); answ = keyboard.nextLine(); if(answ.equalsIgnoreCase("N")) { System.out.print("Goodbye!"); System.exit(0); } System.out.print("What is your username?: " ); user = keyboard.nextLine(); System.out.print("What is your password?: "); pass = keyboard.nextLine(); while((!list().contains(user) || !list().contains(pass)) || counter < 3) { ++ counter; if(list().contains(user) && list().contains(pass)) { list().remove(user); list().remove(pass); System.out.println("Congrats! You successfully signed in!"); counter = 0; break; } if(counter==3) { System.out.println("You have attempted you max amount of tries. This program will now end."); System.exit(0); } else { System.out.println("This is not valid. Please try again"); System.out.print("What is your username?: " ); user = keyboard.nextLine(); System.out.print("What is your password?: "); pass = keyboard.nextLine(); } } System.out.print("Would you like to sign in with another account? (Y/N): "); String rep = keyboard.nextLine(); if(rep.equalsIgnoreCase("N")) { System.out.print("Goodbye!"); System.exit(0); } else continue; } } public static ArrayList<String> list() throws IOException { try { BufferedReader reader = new BufferedReader(new FileReader("loginInfo.txt")); String line; ArrayList<String> arr = new ArrayList<String> (); while ((line = reader.readLine()) != null) { arr.add(line); } reader.close(); return arr; }catch(Exception e) { return null; } } }
Что я уже пробовал:
Я действительно не знаю, как исправить эту проблему, поэтому я действительно ничего не пробовал.