Java程序删除文本文件中的重复行

接口集不允许重复的元素。add()此接口的方法接受元素并添加到Set对象,如果添加成功,则返回true,如果尝试使用此方法添加现有元素,则添加操作将失败,返回false。

因此,要从文件中删除重复的行-

  • 实例化Scanner类(从文件中读取数据的任何类)

  • 实例化FileWriter类(将数据写入文件的任何类)

  • 创建Set接口的对象。

  • 读取文件的每一行,并将其存储在Sting说输入中。

  • 尝试将此字符串添加到Set对象。

  • 如果添加成功,则将该特定行附加到文件编写器。

  • 最后,将FileWriter的内容刷新到输出文件。

如果文件包含特定行超过一次,则第一次将其添加到set对象中,并因此附加到文件编写器中。

如果在读取文件中的所有行时再次遇到同一行,则由于set对象中已经存在该行,因此add()方法将拒绝它。

示例

假设我们有一个名为sample.txt的文件,内容如下:

Hello how are you
Hello how are you
welcome to Nhooo

以下Java程序从上述文件中删除重复的行,并将其添加到名为output.txt的文件中。

import java.io.File;
import java.io.FileWriter;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class DeletingDuplcateLines {
   public static void main(String args[]) throws Exception {
      String filePath = "D://sample.txt";
      String input = null;
      //实例化Scanner类
      Scanner sc = new Scanner(new File(filePath));
      //实例化FileWriter类
      FileWriter writer = new FileWriter("D://output.txt");
      //实例化Set类
      Set set = new HashSet();
      while (sc.hasNextLine()) {
         input = sc.nextLine();
         if(set.add(input)) {
            writer.append(input+"\n");
         }
      }
      writer.flush();
      System.out.println("Contents added............");
   }
}

输出结果

Contents added............

output.txt的内容将是:

Hello how are you
welcome to Nhooo