java - 使用扫描仪将大文件读入内存时内存不足

标签 java arraylist java.util.scanner heap-memory

当我将大文件传递到扫描仪时,以下代码块抛出 java.lang.OutOfMemoryError 异常。解决这个问题的最佳方法是什么?问题出在数组列表还是扫描仪上?

ArrayList rawData = new ArrayList();
Scanner scan = new Scanner(file);

while (scan.hasNext()) {
    String next = scan.next();
        rawData.add(next);
}

最佳答案

增加 java 堆大小,例如

java -Xmx6g myprogram

将堆大小设置为 6 GB。当然总会有一个限度......

关于java - 使用扫描仪将大文件读入内存时内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18689264/

相关文章:

java - 由于方法使用无效而导致编译时错误

java - 如何使用JAVA代码发送电子邮件?

java - Byte 构造函数和 Byte.valueOf() 方法之间的区别

java - 以表格格式打印对象的 ArrayList

java - ActionListener/actionPerformed 类中的扫描仪错误

java - Android Webview - 如果太大则调整图像大小

java.lang.ClassCastException : List cannot be cast to java. lang.Comparable

java - 尝试在 Java 中使用 List<> 时出现 "not generic"错误

java - 取消用户输入

java - 抛出 NullPointerException,但对象已创建并正确返回值