【发布时间】:2011-10-26 00:28:18
【问题描述】:
是否可以使用双 while/for 循环读取文本文件?
我想做这样的事情:
for( String row1 = 0; row1 < file.length; row1++ ) {
for( String row2 = row1 + 1; row2 < file.length; row2++ ){
if( file[row1] == file[row2] ){
// other code
}
}
}
我需要一个双循环,因为我必须在文件中找到包含 2.500.000 行的重复行。 我无法使用 Set 保存行,因为堆大小不足,如果我尝试增加它,我会收到此错误:“VM 初始化期间发生错误 无法为对象堆保留足够的空间 无法创建 Java 虚拟机..”(我有一个 Windows 7 64 位和 8 GB 内存)
提前致谢
【问题讨论】:
-
您可能想要使用数据库。
-
文件包含多少字节?
-
你想对这些重复的行做什么?
-
这不是一个很好的解决方案,您必须遍历内部循环中的所有行以查看它是否与外部循环中的行匹配。
-
@Sibbo 文件大小约为 430MB
标签: java