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