首先,txt文件的值要多行显示,即一个值占一行。
然后上代码:
public static void distinct() {
String pathname = "haveDuplicate.txt";
Map<String, String> map = new HashMap<String, String>();
try (FileReader reader = new FileReader(pathname);
BufferedReader br = new BufferedReader(reader);) {
String line;
// 每次读取一行数据,直接写入map中的Key
while ((line = br.readLine()) != null) {
if(line.isEmpty()) {
continue;
}
line=line.trim();
map.put(line, "Limpie");
}
br.close();
// 下面是写入文件
File writeName = new File("eliminationDuplicate.txt");
writeName.createNewFile();
List<String> diff = new ArrayList<String>();
try (FileWriter writer = new FileWriter(writeName); BufferedWriter out = new BufferedWriter(writer)) {
//遍历map,然后写入文件
for (Map.Entry<String, String> entry : map.entrySet()) {
diff.add(entry.getKey());
}
out.write(String.join("\n", diff) + "");
out.flush(); // 把缓存区内容压入文件
out.close();
}
} catch (IOException e) {
System.out.println("读取剔重文件内容出错");
e.printStackTrace();
}
}
测试的文件:
结果: