无法加载大型csv文本文件

时间:2015-08-23 18:29:31

标签: java

我试图加载一个包含所有比特币交易数据的大型csv文件。首先,我尝试计算数据的大小。它通过使用增量循环来实现这一点。一个到大小并在readline返回null时停止。 csv文件包含764732行数据。我的程序只读入前100000.最后一行与我的文本编辑器(Komodo)中的行kin相匹配,后者显示另外664732行数据。 我的代码有问题,还是java无法处理真正的大文本文件? 代码

BufferedReader br = new BufferedReader(new FileReader(FileName));
for(int size=0; (line=br.readLine())!=null;)  
size++; 

br.close();

//最后一行是空的    大小 - ;

3 个答案:

答案 0 :(得分:1)

在循环外声明大小字段并在之后打印。

BufferedReader br = new BufferedReader(new FileReader(fileName));
int size = 0;
String line;
while ((line = br.readLine()) != null) { 
 size++; 
}
br.close();
System.out.printf("%,d lines%n", size);

最大整数值(Integer.MAX_VALUE)为2,147,483,647,因此如果您计划读取超过20亿行(该行不是字节)的文件,请将 int 切换为 long 类型。 Java可以读取非常大的文件,并且 BufferedReader.readLine()尤其可以读取非常大的文件,只要行尾标记之间的最大连续字符数适合内存。

答案 1 :(得分:0)

    如果我把尺寸变长,
  • 的尺寸就像int一样。看起来它正在阅读所有数据*

答案 2 :(得分:0)

如果你想用Java计算文件中的行数,这里有一个例子 http://www.mkyong.com/java/how-to-get-the-total-number-of-lines-of-a-file-in-java/