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
。
我目前正在注册实时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
。