Ovviamente memorizza l'Utente, e dovrebbe avere come minimo i metodi getter/setter. Scherzi? 8 classi? Mah, la stai sparando grossa secondo me... :asd:

Ad ogni modo ho usato il seguente file:

codice:
Nome1;Cognome1;1;1;
Nome2;Cognome2;2;2;
Nome3;Cognome3;3;3;
Nome4;Cognome4;4;4;
Nome5;Cognome5;5;5;
Il metodo che ho scritto è:

codice:
  Utente getUtente(String name, String pwd) throws IOException {
    Scanner parser = new Scanner(new File(file));
    parser.useDelimiter("\r\n");
    
    while(parser.hasNext()) {
      String s = parser.next();
      String[] splittedText = s.split(";");
      
      // [0] = Nome
      // [2] = Ped
      if(splittedText[0].equals(name) && splittedText[2].equals(pwd)) return new Utente(name, splittedText[1], pwd, Integer.parseInt(splittedText[3]));
    } 
    
    return null;
  }
si può svolgere in diversi modi... usando Scanner, StringTokenizer oppure scorrendo la stringa.

Se vuoi provarlo ecco il codice completo:

codice:
import java.util.Scanner;
import java.io.*;

class Utente {
  private String name, surname, pwd;
  private int age;
  
  Utente(String name, String surname, String pwd, int age) {
    this.name = name;
    this.surname = surname;
    this.pwd = pwd;
    this.age = age;
  }
  
  
  String getName() {
    return name;
  }
  
  String getSurname() {
    return surname;
  }
  
  int getAge() {
    return age;
  }
  
  String getPwd() {
    return pwd;
  }
  
  public String toString() {
    return name+"\n"+surname+"\n"+pwd+"\n"+age;
  }
  
}
  

class SplitString {
  private String file;
  
  SplitString(String file) {
    this.file = file;
  }
  
  Utente getUtente(String name, String pwd) throws IOException {
    Scanner parser = new Scanner(new File(file));
    parser.useDelimiter("\r\n");
    
    while(parser.hasNext()) {
      String s = parser.next();
      String[] splittedText = s.split(";");
      
      // [0] = Nome
      // [2] = Ped
      if(splittedText[0].equals(name) && splittedText[2].equals(pwd)) return new Utente(name, splittedText[1], pwd, Integer.parseInt(splittedText[3]));
    } 
    
    return null;
  }
}

class Example {
  public static void main(String[] args) throws IOException {
    SplitString ss = new SplitString("utente.txt");
    
    System.out.println((ss.getUtente("Nome4","4")).toString());
  }
}