我在使用BufferedReader时遇到问题
我想打印一个文本文件的6行:
public class Reader {
public static void main(String[]args) throws IOException{
FileReader in = new FileReader("C:/test.txt");
BufferedReader br = new BufferedReader(in);
while (br.readLine() != null) {
System.out.println(br.readLine());
}
in.close();
}
现在,根据我每次调用readLine()方法时收集到的信息,它会自动前进到下一行。
所以我不能使用条件br.readLine()!= null,因为它已经向前推进了一行,我得到了输出:
Line 2
Line 4
Line 6
我应该使用什么条件来检查文本字段中是否还有新行?
9条答案
按热度按时间jogvjijk1#
这就是问题所在:
您有两个对
readLine
的调用-第一个 only 检查是否有一行(但读取后丢弃),第二个读取 next 行。现在我们只在每个循环迭代中调用
readLine()
once,并使用我们在“我们完成了吗?”和“打印出该行”部分中读取的行。2ic8powd2#
你通过
while
循环读取line
,然后通过这个循环读取下一行,所以只需要在while循环中读取它xmd2e60i3#
可以将
br.readLine()
的结果赋给一个变量,并使用它进行处理和检查,如下所示:rhfm7lfc4#
对资源使用try。这将自动关闭资源。
qvk1mo1f5#
vecaoik16#
也许你是指这个
0h4hbjxa7#
试试看:
vxbzzdmp8#
或
这也是第一行。
htrmnn0y9#
你可以把它存储在数组中,然后使用你想要的任何一行。这是我用来从文件中读取行并将其存储在字符串数组中的代码片段,希望这对你有用:)