我正在做一个看起来像是从数据文件中读取的简单内容,而且它正在fr fr fr。 (而且,我的意思是300毫秒。)这是有问题的代码:
BufferedReader f = new BufferedReader(new FileReader("input.txt"));
StringTokenizer st = new StringTokenizer(f.readLine());
int var1 = Integer.parseInt(st.nextToken())
int var2 = Integer.parseInt(st.nextToken());
Integer[][] people = new Integer[var1][];
for(int i = 0; i < var2; i++)
f.readLine();
for(Integer i = 0; i < var1; i++)
{
StringTokenizer line = new StringTokenizer(f.readLine(), " \t\n\r\f,");
line.nextToken();
Integer[] list = new Integer[line.countTokens()];
for(int j = 0; j < drinks.length; j++)
list[j] = Integer.parseInt(line.nextToken());
people[i] = list;
}
这是相关的time
输出:
sammysmbp:fridgemadness_lean sfishman$ time java fridgemadness
real 0m0.311s
user 0m0.277s
sys 0m0.056s
只是我还是真的,真的很慢。在这个例子中,它仅通过51行输入。
答案 0 :(得分:4)
只是猜测,但可能很多时候只是用于启动jvm。
在相关代码之前和之后打印时间戳。如果我的猜测是正确的,那么服务请求的小服务器可能有助于消除启动时间。
答案 1 :(得分:1)
模式中不需要\ r或\ n,readLine()已经删除了它们。
除了JVM启动之外,如果文件很长,大部分时间都将用于读取到所需位置。也许行的文本文件不是正确的数据结构。