Quote Originariamente inviata da giannino1995 Visualizza il messaggio
Ho sostituito le virgole con spazi, forse è meglio
Nì (sì e no). Il punto è che se nel codice fai lo split per 1 solo spazio esatto e chi edita il file non "sapesse" questo particolare preciso e magari un po' artisticamente si mette ad allineare la seconda colonna .... si sballa tutto il parsing del file.
Quindi se proprio vuoi usare gli spazi, fai la separazione per "uno o più spazi" (cosa banale con una regex per split() di String).

Quote Originariamente inviata da giannino1995 Visualizza il messaggio
codice:
FromTxtToMatrix rf = new FromTxtToMatrix();
rf.LeggiFile("WEB-INF/users.txt");
Quello che hai usato sopra è un percorso "relativo" (alla directory corrente). Nelle webapp Java con i servlet container/application server, la directory "corrente" è parecchio vaga, nel senso che dipende da svariati fattori: da quale server è, da come/da dove viene avviato e altro.
Detto in generale, nelle webapp la directory corrente NON è "usabile". A meno che si abbia pieno controllo e conoscenza su come/dove viene avviato il server, cosa possibile ma non sempre (ad esempio se il server non fosse gestito da te o di tua proprietà).

Se il file deve stare "dentro" l'applicazione, o lo tratti come "risorsa" (nel senso della ricerca tramite classloader come inteso dai getResource/getResourceAsStream di java.lang.Class) ... o usi altro come il getRealPath di ServletContext (ma attenzione, la applicazione deve essere deployata spacchettata, non servita direttamente da un .war).

Quote Originariamente inviata da giannino1995 Visualizza il messaggio
codice:
public class FromTxtToMatrix {

    private String[][] Matrice;

    public String[][] LeggiFile(String File) throws IOException {
        FileReader f = new FileReader(File);
        BufferedReader b = new BufferedReader(f);
        int Riga = 0;
        String[] VettoreRiga;
        String StringaRiga = null;
        while(true) {
            StringaRiga=b.readLine();
            if(StringaRiga == null)
                break;
            VettoreRiga = StringaRiga.split(" ");
            Matrice[Riga++] = VettoreRiga;
        }
        System.out.println(Matrice);
        return Matrice;
    }
}
Per niente buono. Sia per le denominazioni, sia per l'uso di una matrice. E tra l'altro (non te ne sei accorto), dove viene istanziata la matrice?? Appunto ...

Allora: o fai un design diverso, dove la classe è specifica per il "db" degli utenti e "sa" anche DOVE si trova il file. Qualcosa del tipo abbozzato:

codice:
public class UserAuthentication {
    // .....

    public void authenticate(String username, String password) {
        // cerca lo username nel file
        // se trovato, verifica il match degli hash
        // Nota: per errori, lancia fuori eccezioni.
    }
}

Quote Originariamente inviata da giannino1995 Visualizza il messaggio
rf.LeggiFile("..\..\users.txt");
Neanche, per quanto detto prima.



P.S. devi chiarirti le idee su Object Oriented e sul design delle classi.