Java NetBeans 上的批量读取错误(火车调度)

Batch reading error (Train Schedulling) on Java NetBeans

我目前正在注册实时class,我需要编写一个适应混合大数据(流)系统的工作负载调度程序模块的程序。

我从头开始:在 NetBeans 上使用 Java,生成合成数据集,使用线程读取该数据集。

这是怎么回事:我的线程应该读取不同的文件,并根据文件的大小,在执行时将其发送到不同的 ArrayList。它适用于 <10KB 等小文件,但我还需要 I/O 批处理大小为 64MB+ 的文件和大小在 1KB 到 64MB 之间可变的中等文件。这些文件中的每一个都将得到相应的处理。

问题:我的线程(单个)读取所有小的 .txt,但是当读取较大的文件时,我的 NetBeans 只保留 运行 而实际上什么都不做。 会不会是内存问题? 有谁知道如何在 NetBeans 中操作大型 txt 文件? P.S.: 在我的电脑上内存不是问题。

在 java 中,您可以使用以下方法将整个文件读入内存:

java.nio.file.Files.readAlLines

或者您可以将流式处理与 java.util.Scanner 一起使用,逐行或按匹配模式的标记读取文件:

FileInputStream inputStream = null;
Scanner sc = null;
try {
    inputStream = new FileInputStream(path);
    sc = new Scanner(inputStream, "UTF-8");
    while (sc.hasNextLine()) {
        String line = sc.nextLine();
        // System.out.println(line);
    }
    // note that Scanner suppresses exceptions
    if (sc.ioException() != null) {
        throw sc.ioException();
    }
} finally {
    if (inputStream != null) {
        inputStream.close();
    }
    if (sc != null) {
        sc.close();
    }
}

因此要阅读大型 txt 文件,请使用 Scanner