我有这样的代码:
RandomAccessFile raf = new RandomAccessFile(new File("C:\\Users\\AhmadMaleki\\IdeaProjects\\Hello world\\src\\kish\\file1"), "r");
for (int i = 1 ; i < 1025 ; i++)
{
for (int j = 0; j < raf.length() - 4 ; j++)
{
raf.seek(j);
byte[] b = new byte[5];
raf.read(b);
if (new String (b).equals(wordcount[i]))
{
z[i]++;
}
}
}
在此代码中raf.length()= 26841039,执行时间为4100分钟。 是否有减少运行时间的解决方案?(例如多线程,并行......)
答案 0 :(得分:1)
如果开始切换你的循环,那么你不会读取相同的文件1024次。
for (int j = 0; j < raf.length() - 4 ; j++){
for (int i = 1 ; i < 1025 ; i++){
// Do your things here ...
}
}
然后明智地选择输入流。