,行,空,行,空,行,空...
我有这个 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行空行"。根据加夫里尔的评论更新了解决方案。
谢谢加夫列尔!