如何强制读取一行的 while 循环在 3 个空行之前不停止



我有这个 while 循环正在读取BufferedReader .

BufferedReader br = new BufferedReader(new InputStreamReader(sk.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
    System.out.println (line);
}
我知道一旦行

为空,它就会停止,但在这种情况下(我正在读取的数据(,有一些新行,然后数据继续。

因此,我希望 while 循环在连续找到 3 个空行后停止执行(这样我确定数据已完成(。

谢谢

改进@user2004685的答案,您可以计算空行的数量:

BufferedReader br = new BufferedReader(new InputStreamReader(sk.getInputStream()));
int emptyCount = 0;
String line;
while (emptyCount < 3 && (line = br.readLine()) != null) {
     System.out.println (line);
     /* Track Empty Lines Count */
     if(String.isEmpty(line)) {
          emptyCount++;
     } else {
          emptyCount = 0;
     }
}

不要忘记将emptyCount重置为 0,否则它会很快退出,以防你有行,emty

,行,空,行,空,行,空...

跟踪空行并向循环添加附加条件。

试试这段代码:

BufferedReader br = new BufferedReader(new InputStreamReader(sk.getInputStream()));
int emptyCount = 0;
String line = null;
while (emptyCount < 3 && (line = br.readLine()) != null) {
     System.out.println (line);
     /* Track Empty Lines Count */
     if(String.isEmpty(line)) {
          emptyCount++;
     } else {
          emptyCount = 0;
     }
}

更新:我忽略了"3行空行"。根据加夫里尔的评论更新了解决方案。

谢谢加夫列尔!

最新更新