Ниже приведен код, который я написал, bucketsRow
содержит 80 элементов, и инструкция println внутри цикла for корректно показывает это. readFile
- это сканер, который выполняет readFile
через файл, содержащий 800 строк, в которых элементы являются первым словом, из которых все 80 присутствуют в bucketsRow
. Я хочу скопировать эти строки в новый файл, для которого я использовал файл-сценарист.
for(int p=0;p<bucketsRow.length;p++)
{
System.out.println("p:"+p+"Doc at p:"+names[p]);
inner: while(readfile.hasNextLine())
{
String line=readfile.nextLine();
//System.out.println(line);
if(line.indexOf(names[p])!=-1)
{
System.out.println(line.indexOf(names[p]));
writefile.write(line);
writefile.write(System.getProperty( "line.separator" ));
break inner;
}
}
}
writefile.flush();
writefile.close();
Проблема здесь в том, что вам нужно снова установить фокус указателя ссылки на класс сканера на начало файла и начать повторное сравнение. Из-за этого некоторые из строк пропускаются в выходном файле.
Для получения фокуса в начале файла создайте ссылку сканера только когда вы входите в цикл while.