Java:InputStream太慢,无法读取大型文件
2022-09-03 06:07:00
我必须逐个字符读取53 MB的文件。当我使用ifstream C++完成它时,它会在几毫秒内完成,但是使用Java InputStream则需要几分钟。Java这么慢是正常的,还是我错过了什么?
另外,我需要在Java中完成程序(它使用servlet,我必须从中调用处理这些字符的函数)。我在想也许可以用C或C++编写文件处理部分,然后使用Java Native Interface将这些函数与我的Java程序接口......这个想法是怎么回事?
任何人都可以给我任何其他提示...我真的需要更快地读取文件。我尝试使用缓冲输入,但它仍然没有提供接近C++的性能。
已编辑:我的代码跨越多个文件,它非常脏,所以我给出了概要
import java.io.*;
public class tmp {
public static void main(String args[]) {
try{
InputStream file = new BufferedInputStream(new FileInputStream("1.2.fasta"));
char ch;
while(file.available()!=0) {
ch = (char)file.read();
/* Do processing */
}
System.out.println("DONE");
file.close();
}catch(Exception e){}
}
}