Очевидно, вы можете просто закрыть и снова открыть файл следующим образом:
while((s1=file1.data.readLine())!=null){
System.out.println("s1: "+s1);
FileReader file2=new FileReader("d:\\testfiles\\FILE2.txt");
while((s2=file2.data.readLine())!=null){
System.out.println("s2: "+s2);
//compare s1 and s2;
}
file2.closeFile()
}
Но вы действительно не хотите делать это таким образом, поскольку время работы этого алгоритма равно O (n 2 ). если в файле A содержится 1000 строк, а в файле B - 10000 строк, ваш внутренний цикл будет выполняться 1 000 000 раз.
Что вы должны сделать, это прочитать каждую строку и сохранить ее в коллекции, которая позволяет быстро проверить, содержится ли элемент (возможно, HashSet).
Если вам нужно только проверить, что каждая строка в файле 2 находится в файле 1, то вы просто добавляете каждую строку в файле 1 в HashSet, а затем проверяете, что каждая строка в файле 2 находится в этом наборе. ,
Если вам нужно сделать перекрестное сравнение, в котором вы найдете каждую строку, находящуюся в одной, но не в другой, то вам понадобятся два набора хешей, по одному для каждого файла. (Хотя есть хитрость, которую вы могли бы сделать, чтобы использовать только один)
Если файлы настолько велики, что у вас недостаточно памяти, тогда ваш оригинальный метод n 2 никогда бы не сработал.