📅  最后修改于: 2023-12-03 15:16:37.471000             🧑  作者: Mango
本文介绍了使用Java编程语言编写一个程序来删除文本文件中的重复行。程序将读取给定文本文件,识别并删除重复行,然后将处理后的结果写入新的文件。
为了删除文本文件中的重复行,我们可以使用以下步骤来实现:
FileReader
、FileWriter
和BufferedReader
等)来读取和写入文本文件。HashSet
或LinkedHashSet
来存储已经出现过的行,这将帮助我们判断行是否重复。以下是一个示例的Java代码来演示如何实现这个思路:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
public class RemoveDuplicateLines {
public static void main(String[] args) {
// 输入和输出文件的路径
String inputFilePath = "input.txt";
String outputFilePath = "output.txt";
// 创建一个HashSet来存储已经出现过的行
HashSet<String> linesSet = new HashSet<>();
try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath))) {
String line;
// 逐行读取原始文件
while ((line = reader.readLine()) != null) {
// 如果该行不在HashSet中,则将其写入新文件并添加到HashSet中
if (!linesSet.contains(line)) {
writer.write(line);
writer.newLine();
linesSet.add(line);
}
}
// 删除原始文件
File inputFile = new File(inputFilePath);
inputFile.delete();
// 修改新文件的名称
File outputFile = new File(outputFilePath);
outputFile.renameTo(inputFile);
System.out.println("重复行已经成功删除并保存到新文件中。");
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码将从名为"input.txt"的文件中读取文本内容,并删除其中的重复行后,将结果保存到名为"output.txt"的新文件中。原始文件将被删除,并且新文件的名称将修改为"input.txt"。
请注意,此示例代码只是提供了一种实现删除重复行的方式。根据实际需要,您可能需要进行修改以适应特定的文件结构和需求。