求助,JAVA txt文件数据去重问题

qq_15599389 2015-05-03 10:01:37
如题,我有个01.txt文件,要去掉里面的重复行并将结果写到1.txt。要如何实施
例如 01.txt文件内容如下(很多重复行):
A,B,C,D
A,B,C,D
A,B,S,D
S,A,D,F,G
A,B,S,D
最终出来的1.txt文件的内容应该是这样的:
A,B,C,D
A,B,S,D
S,A,D,F,G
...全文
280 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_15599389 2015-05-09
  • 打赏
  • 举报
回复
引用 8 楼 yjn1003cjl 的回复:
package test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashSet; public class Set { public static void main(String[] args) { try { doit(); } catch (Exception e) { e.printStackTrace(); System.out.println("程序出错"); } } public static void doit() throws Exception{ BufferedInputStream fis = new BufferedInputStream(new FileInputStream(new File("E:\\01.txt"))); BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),5);// 用5M的缓冲读取文本文件 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( new BufferedOutputStream(new FileOutputStream("1.txt")))); String line = ""; HashSet<String> set = new HashSet<String>(); while(( line=reader.readLine())!=null){ set.add(line.trim()); } for (String string : set) { System.out.println(string); writer.write(string); } } } 大致这样
结果是错的。
yjn1003cjl 2015-05-05
  • 打赏
  • 举报
回复
package test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashSet; public class Set { public static void main(String[] args) { try { doit(); } catch (Exception e) { e.printStackTrace(); System.out.println("程序出错"); } } public static void doit() throws Exception{ BufferedInputStream fis = new BufferedInputStream(new FileInputStream(new File("E:\\01.txt"))); BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),5);// 用5M的缓冲读取文本文件 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( new BufferedOutputStream(new FileOutputStream("1.txt")))); String line = ""; HashSet<String> set = new HashSet<String>(); while(( line=reader.readLine())!=null){ set.add(line.trim()); } for (String string : set) { System.out.println(string); writer.write(string); } } } 大致这样
qq_15599389 2015-05-04
  • 打赏
  • 举报
回复
引用 6 楼 u011004037 的回复:
[quote=引用 5 楼 qq_15599389 的回复:] 数据量上千条
才上千条?假如说一条长度为1K,那一万条也不过10M。现在的电脑哪个没有十兆内存。 大一时,开辟一个长度为100的int数组我都心疼,现在想想,那是想复杂了,那才多少内存了。。。[/quote] 能给个具体的代码吗
youzi05 2015-05-04
  • 打赏
  • 举报
回复
引用 5 楼 qq_15599389 的回复:
数据量上千条
才上千条?假如说一条长度为1K,那一万条也不过10M。现在的电脑哪个没有十兆内存。 大一时,开辟一个长度为100的int数组我都心疼,现在想想,那是想复杂了,那才多少内存了。。。
qq_15599389 2015-05-04
  • 打赏
  • 举报
回复
引用 2 楼 u011004037 的回复:
如果数据量不太大完全可以用1楼的方法
数据量上千条
qq_15599389 2015-05-04
  • 打赏
  • 举报
回复
可以给份具体的代码或者伪代码吗?
Chengyajie521 2015-05-03
  • 打赏
  • 举报
回复
读入,放入set,写出
boybaozi 2015-05-03
  • 打赏
  • 举报
回复
重复行会聚集在一起吗?
youzi05 2015-05-03
  • 打赏
  • 举报
回复
如果数据量不太大完全可以用1楼的方法

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧