我正在尝试使用java中的文件阅读器和缓冲阅读器从txt文件中打印一定数量的行。该文件有超过100000行,但我只想打印前100行。
我提出的代码看起来像这样:
public class main {
public static void main(String args[]) throws Exception {
FileReader fr = new FileReader("words.txt");
BufferedReader br = new BufferedReader(fr);
String s;
int count = 0;
while (count <101)
{
while((s = br.readLine()) != null)
{
System.out.println(s);
count++;
System.out.println(count);
}
}
fr.close();
}
}
打印出类似这样的内容:
it
1
was
2
a
3
sunny
4
day
...
依此类推(正在印刷的整数就是这样,我可以看到计数器正在递增)。麻烦的是,它一直到文件的末尾,而不是在第100行文本之后停止。我的问题是,如何在第100行之后停止打印?
提前致谢。
答案 0 :(得分:2)
你需要结合你的条件
while (count < 100 && (s = br.readLine()) != null) { ...
(编辑:正如johnbk提到的,计数检查应为< 100
)
答案 1 :(得分:2)
好吧,你的内循环一直在运行直到文件结束。你必须捕获两个条件,顺便说一句你试图打印101行,而不是100 。要打印100行,您需要检查c&lt; 100因为count初始化为'0'
while ( count < 100 && (s = br.readLine()) != null) {
System.out.println(s);
count++;
}
答案 2 :(得分:1)
实际上只是一个猜测 - 但我可能会尝试结合这两个条件:
while ((s = br.readLine()) != null && count < 100)
System.out.println(s + " [line: "+(count++)+"]");
也许?
答案 3 :(得分:1)
你不想使用嵌套的while循环,你想要像
这样的东西while(count < 101 && (s = br.readLine()) != null){
一旦达到计数,这将停止文件读取。