我试图加载一个包含所有比特币交易数据的大型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();
//最后一行是空的 大小 - ;
答案 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)
答案 2 :(得分:0)
如果你想用Java计算文件中的行数,这里有一个例子 http://www.mkyong.com/java/how-to-get-the-total-number-of-lines-of-a-file-in-java/