接口集不允许重复的元素。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