Я работаю над программой, которая имеет около 400 входных файлов и около 40 выходных файлов.Все просто: он читает каждый входной файл и генерирует новый файл с гораздо большим размером (на основе алгоритма).
Я использую метод read () из BufferedReader:
String encoding ="ISO-8859-1";
FileInputStream fis = new FileInputStream(nextFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, encoding));
char[] buffer = new char[8192] ;
Чтобы прочитать входные файлы, я использую это:
private String getNextBlock() throws IOException{
boolean isNewFile = false;
int n = reader.read(buffer, 0, buffer.length);
if(n == -1) {
return null;
} else {
return new String(buffer,0,n);
}
}
С каждым блоком я делаю некоторые проверки (например, просматривая некоторую строку внутри блока), а затем записываю это в файл:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("fileName"), encoding));
writer.write(textToWrite);
Проблема в том, что это занимает около 12 минут.Я пытаюсь найти что-то еще намного быстрее.Кто-нибудь есть идеи о чем-то лучше?
Спасибо.