问题描述
我是java的新手,所以我现在在程序中使用缓冲区读取器,一旦结束循环,循环将中断,但再次在第二个循环中,我再次调用了相同的缓冲区读取器,现在我想从第一行读取内容,所以请帮助我。 现在它读为空,因为它已经到达行尾
while ((s2 = br.readLine())!=null) {
if (s2.contains(keyword2)) {
s2 = s2.replaceAll(keyword2, " ");
Alternate_Account_Number = s2;
System.out.println(Alternate_Account_Number);
break;
}
}
String s3;
String Meter_Number = null;
String keyword3 = arra.get(8);
while ((s3 = br.readLine()) != null) {
if (s3.contains(keyword3)) {
s3 = s3.replaceAll("\\D+", " ");
Meter_Number = s3;
System.out.println(Meter_Number);
break;
}
}
1楼
//将标记设置在缓冲区的开头
bufferedReader.mark(0);
//在这里读取缓冲区...
//重置为最后一个标记; 在这种情况下,它是缓冲区的开始
bufferedReader.reset();
2楼
您可以使用mark(int readAheadLimit)标记流中的当前位置。
您可以使用close()关闭流并释放与其关联的所有系统资源。 并再次阅读。(按要求进行)
reset()重置流。 如果流已被标记,则尝试将其重新放置在标记处。 如果尚未标记流,则尝试以适合于特定流的某种方式将其重置,例如,将其重新放置到其起点。 并非所有的字符输入流都支持reset()操作,并且某些字符输入流不支持mark()。