Мне нужно прочитать посимвольно файл размером 53 МБ. Когда я делаю это на С++ с помощью ifstream, это выполняется за миллисекунды, но с использованием Java InputStream это занимает несколько минут. Это нормально, что Java такая медленная, или я что-то упустил?
Также мне нужно доделать программу на Java (она использует сервлеты, из которых я должен вызывать функции, обрабатывающие эти символы). Я подумал, может быть, написать часть обработки файлов на 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){}
}
}