【发布时间】:2019-07-08 06:41:33
【问题描述】:
我是 java 新手,所以现在我在程序中使用缓冲区读取器,一旦我结束循环,循环将再次中断,但在第二个循环中,我再次调用了相同的缓冲区读取器,我想从第一行读取所以帮助我。 现在它读取为 Null,因为它已到达行尾
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;
}
}
【问题讨论】:
-
如果源很小,您可以在开始时创建一个标记,并在第一次读取所有行后调用
br.reset(不在您所说的while循环内)。否则,您还不如在第一个循环后重新打开阅读器 -
当你进入第二个循环时,输入已经用尽,所以它永远不会excpectingsxcdptions,除非你以前硬执行过
mark(),这里没有说明,它需要标记position 永远不会超过当前位置后面的缓冲区大小,如 Javadoc 中所述,
标签: java