Java 无法加载大型csv文本文件

Java 无法加载大型csv文本文件,java,Java,我正在尝试加载一个包含所有比特币交易数据的大型csv文件。首先,我尝试计算数据的大小。它通过使用一个循环来实现这一点,该循环将“1”增加到大小,并在readline返回null时停止。 csv文件包含764732行数据。我的程序只读取前100000个。最后一行与“我的文本编辑器”(Komodo)中的行相匹配,后者显示另外664732行数据。 我的代码是否有问题,或者是java无法处理一个非常大的文本文件?? 代码 //最后一行是空的 大小-- 如果我将大小设为长,则将大小设为int有效。看起来

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

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

  • 如果我将大小设为长,则将大小设为int有效。看起来它读取了所有的数据*

在循环外部声明大小字段,然后打印

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_值)为2147483647,因此如果您计划读取超过20亿行(即行不是字节)的文件,请将int切换为long类型。Java可以读取非常大的文件,特别是BufferedReader.readLine()可以读取非常大的文件,只要行尾标记之间的最大顺序字符可以放入内存。

如果您想用Java计算文件中的行数,下面是一个示例

Java不支持特定的最大文件大小。所以我的代码肯定有问题。
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);