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