Я бы изменил код так, чтобы он выглядел примерно так:
RecordReader recordReader;
Processor processor;
public void processRecords() {
Record record;
while ((record = recordReader.readRecord()) != null) {
processor.processRecord(record);
}
}
Конечно, в этом случае вы должны каким-то образом добавить в этот класс правильное устройство чтения записей, но это не должно быть проблемой.
Одна реализация RecordReader может выглядеть следующим образом:
class BufferedRecordReader implements RecordReader
{
BufferedReader in = null;
BufferedRecordReader(BufferedReader in)
{
this.in = in;
}
public Record readRecord()
{
String line = in.readLine();
if (line == null) {
return null;
}
Record r = new Record(line, in.readLine());
return r;
}
}