Manipulando archivos de texto en java

Quiero mostrar todos los clientes almacenados en archivos de texto, pero un cliente está almacenado en muchos archivos de texto y se muestra más de una vez. ¿Cómo eliminar duplicados de estos clientes? He intentado incluso con HashSet pero no funcionó. Aquí está mi código.

public class ReadFile {

private int countCustomer = 0;  
private File path;
private List<Customer> customers = new ArrayList<Customer>();

public ReadFile(File file_path) {

    path = file_path;

}

public String[] openFile() throws IOException {

    FileReader fr = new FileReader(path);
    BufferedReader br = new BufferedReader(fr); 
    int numberOfLines = readLines();
    String[] textData = new String[numberOfLines];
    for (int i = 0; i < numberOfLines; i++)
    {
        textData[i] = br.readLine();

    }

    br.close(); 
    return textData;
}

public void arrayCustomer(){

    try{
        String[] array = openFile();    
        for (int j=0; j< array.length;j++)   
        {
            String str = array[j];  
            String[] temp;
          String delimiter = " ";   

          temp = str.split(delimiter);

          String category = temp[0];  
          double balance = Double.parseDouble(temp[1]);   
          int moveNumber = Integer.parseInt(temp[2]);    
          int accountNumber = Integer.parseInt(temp[3]); 

          if (!isIn(new Customer(category, balance, moveNumber, accountNumber)))
          {
        customers.add(new Customer(category, balance, moveNumber, accountNumber)); 
        countCustomer++;
          }
        }
    }
    catch(IOException e){
        e.printStackTrace();
    }

}

public boolean isIn(Customer customer){

    for (int i = 0; i < customers.size(); i++){
        if (customers.get(i).getAccountNumber() == customer.getAccountNumber())
        {
            return true;
        }
    }
    return false;
}

public void listCustomers() {
    for (Customer customer : customers) {
        System.out.print("Category: " + customer.getCategory());
        System.out.print(" Balance: " + customer.getBalance());
        System.out.print(" Moves: " + customer.getMoveNumber());
        System.out.println(" Account number: " + customer.getAccountNumber());
    }
}


public int readLines() throws IOException {

    FileReader fr = new FileReader(path);
    BufferedReader br = new BufferedReader(fr);

    int numberOfLines = 0;
    String aLine;

    while((aLine = br.readLine()) != null) 
    {
        numberOfLines++;
    }
        br.close();
        return numberOfLines;
}



// The class with the main method

public class FileList {

public static Scanner scan;
public static ReadFile f;
public static final File folder = new File("C:/My_dir");

public static void main(String[] args) {

    Logger logger = Logger.getLogger("textfiles");
    scan = new Scanner(System.in);
    File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++)
    {   
        File fileEntry = listOfFiles[i];

        if (!fileEntry.isDirectory()) 
        {
            try{
                f = new ReadFile(fileEntry);
                f.openFile();
                f.arrayCustomer();
                f.listCustomers();
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
        }
        else
            {
            logger.log(Level.INFO, "The directory is empty!");
            }
    }
Respuesta 1

Estoy tratando de perfilar una JVM remota con VisualVM 1.4. Estoy ejecutando macOS High Sierra 10.13.6 localmente, con la siguiente versión de OpenJDK: java -version openjdk versión "1.8.0_181" OpenJDK Runtime ...

Estoy trabajando en la base de datos postgresql, necesito convertir un tipo de datos MYSQL Blob en un byte PostgreSQL usando código java solo ¿hay alguna forma de hacerlo?

Cuando intento analizar el encabezado de jwt como base64 a cadena, la salida es: {"alg": "RS256", "typ": "JWT", "kid": "1234" sin el último paréntesis, pero cuando decodifico el misma cadena base64 por ejemplo aquí: ...

Este es un bloque de código que quiero ejecutar en varios cuadros combinados Información importante: AssignRollno () es un método que creé que devuelve un valor int y, como dice, asigna un rollno ...