相关疑难解决方法(0)

从Java中的文件中读取大量数据

我有一个文本文件包含1 000 002以下编号中的数字:

123 456
1 2 3 4 5 6 .... 999999 100000
Run Code Online (Sandbox Code Playgroud)

现在我需要读取该数据并将其分配给int变量(前两个数字)和其余所有(1 000 000个数字)到一个数组int[].

这不是一项艰巨的任务,但是 - 它的速度非常慢.

我的第一次尝试是java.util.Scanner:

 Scanner stdin = new Scanner(new File("./path"));
 int n = stdin.nextInt();
 int t = stdin.nextInt();
 int array[] = new array[n];

 for (int i = 0; i < n; i++) {
     array[i] = stdin.nextInt();
 }
Run Code Online (Sandbox Code Playgroud)

它作为例外工作,但执行大约需要7500毫秒.我需要在几百毫秒内获取该数据.

然后我尝试了java.io.BufferedReader:

使用BufferedReader.readLine()String.split()我在大约1700毫秒内得到了相同的结果,但它仍然太多了.

如何在不到1秒的时间内读取该数据量?最终结果应该等于:

int n …
Run Code Online (Sandbox Code Playgroud)

java optimization performance input

17
推荐指数
1
解决办法
9344
查看次数

标签 统计

input ×1

java ×1

optimization ×1

performance ×1