У меня есть два файла:
1- с 1400000 строк или записей --- 14 МБ
2- с 16000000 - 170 МБ
Я хочу найти, если каждая запись или строка вФайл 1 также находится в файле 2 или нет
Я разрабатываю Java-приложение, которое выполняет следующее: Читает файл построчно и передает каждую строку методу, который зацикливается в файле 2
Вотмой код:
public boolean hasIDin(String bioid) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("C://AllIDs.txt"));
long bid = Long.parseLong(bioid);
String thisLine;
while((thisLine = br.readLine( )) != null)
{
if (Long.parseLong(thisLine) == bid)
return true;
}
return false;
}
public void getMBD() throws Exception{
BufferedReader br = new BufferedReader(new FileReader("C://DIDs.txt"));
OutputStream os = new FileOutputStream("C://MBD.txt");
PrintWriter pr = new PrintWriter(os);
String thisLine;
int count=1;
while ((thisLine = br.readLine( )) != null){
String bioid = thisLine;
System.out.println(count);
if(! hasIDin(bioid))
pr.println(bioid);
count++;
}
pr.close();
}
Когда я запускаю, кажется, что потребуется больше 1944.44444444444 часов для завершения, так как обработка каждой строки занимает 5 секунд.Это примерно три месяца!
Есть ли идеи сделать это за гораздо более короткое время?
Заранее спасибо.