Salve a tutti,
sto cercando di creare un metodo per l'autenticazione di un utente, tramite l'inserimento di username e password. Il mio file.txt contiene le seguenti informazioni: username, password, nome e cognome. Riesco a far inserire sia username che password e a farmi restituire "Password non valida" nel caso in cui la password inserita dall'utente non corrisponda a quella dell'username. Il mio problema è che non riesco a farmi restituire "Username non valida" solo nel caso in cui nel file non sia presente l'username inserito, nemmeno se provo a inserire tutte le parole in un array e poi leggere l'array. Come posso fare?
codice:public void loginL() { String id; System.out.println("Username:"); Scanner i = new Scanner(System.in); id = i.nextLine(); FileInputStream fstream = null; DataInputStream in = null; try { // apro il file fstream = new FileInputStream("lettori.txt"); // prendo l'inputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; ArrayList<String> par = new ArrayList<>(); // Leggo il file riga per riga while ((strLine = br.readLine()) != null) { if(strLine.contains(id)){ // se la riga è uguale a quella ricercata String p; System.out.println("Password:"); Scanner ps = new Scanner(System.in); p = ps.nextLine(); if (strLine.contains(p)) { System.out.println("Autenticazione eseguita con successo!"); System.out.println(strLine); } else { System.out.println("Password non valida"); } ps.close(); } else { } String[] strings=strLine.split(" "); String ide=strings[0]; String password=strings[1]; String nome=strings[2]; String cognome=strings[3]; par.add(ide); par.add(password); par.add(nome); par.add(cognome); } if (!par.equals(id)) { System.out.println("Username non valida"); } fstream.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } i.close(); }