【问题标题】:Batch reading error (Train Schedulling) on Java NetBeansJava NetBeans 上的批量读取错误(火车调度)
【发布时间】:2017-12-14 16:06:26
【问题描述】:

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

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

那么发生了什么:我的线程应该读取不同的文件,并且根据文件的大小,在我执行时将其发送到不同的 ArrayList。它适用于

问题:我的线程(单个)读取所有小的 .txt,但是当读取较大的文件时,我的 NetBeans 只是继续运行,并没有真正做任何事情。 会不会是内存问题? 有谁知道如何在 NetBeans 中操作大型 txt 文件? P.S.:内存不是我电脑的问题。

【问题讨论】:

标签: java multithreading file-io bigdata dispatcher


【解决方案1】:

在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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2018-12-10
    • 2019-05-11
    • 2018-06-19
    • 2013-07-20
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多