Member 13432539 Ответов: 1

Java программа для чтения текстового файла и удаления дубликатов строк и записи нового текстового файла


входные данные file---hello.txt файл
привет
Ява
привет
Ява
выходной файл file--xyz.txt
привет
Ява

Что я уже пробовал:

public static void main(String[] args) throws IOException 
    {
        // PrintWriter object for output.txt
        PrintWriter pw = new PrintWriter("output.txt");
         
        // BufferedReader object for input.txt
        BufferedReader br1 = new BufferedReader(new FileReader("input.txt"));
         
        String line1 = br1.readLine();
         
        // loop for each line of input.txt
        while(line1 != null)
        {
            boolean flag = false;
             
            // BufferedReader object for output.txt
            BufferedReader br2 = new BufferedReader(new FileReader("output.txt"));
             
            String line2 = br2.readLine();
             
            // loop for each line of output.txt
            while(line2 != null)
            {
                 
                if(line1.equals(line2))
                {
                    flag = true;
                    break;
                }
                 
                line2 = br2.readLine();
             
            }
             
            // if flag = false
            // write line of input.txt to output.txt
            if(!flag){
                pw.println(line1);
                 
                // flushing is important here
                pw.flush();
            }
             
            line1 = br1.readLine();
             
        }
         
        // closing resources
        br1.close();
        pw.close();
         
        System.out.println("File operation performed successfully");
    }
}

1 Ответов

Рейтинг:
0

Kornfeld Eliyahu Peter

Java имеет средства удаления дубликатов, если двойной цикл не является обязательным требованием...

String[] szInput = {"input file---hello.txt file", "hello", "java", "hello", "java", "output file--xyz.txt file", "hello", "java"}; // you create it by reading all lines of the input file!!!
Set<String> szSet = new HashSet<String>(Arrays.asList(szInput)); // the same string will create the same hash so duplicates will be removed...
String[] szOutput = szSet.toArray(new String[szSet.size()]); // write to output file


CPallini

Вероятно, а LinkedHashSet лучше всего подходит для этой цели.
Мой 5.

Kornfeld Eliyahu Peter

В случае, если заказ важен...
Спасибо!