BufferedReader

img

 8D         public class Properties1
 9D              public staticvoidmain(String[]args)throwsIoException+
 10                    BufferedReader bufferedReader = new BufferedReaderCnew FileReaderC fileName:wsrc\\mysqL.properties"));
 11                      String Line=
 12                    while(bufferedReader.readLineC                                        !=nuL
 13                         System.out.printinCbufferedReader.readLineC);
 14
 5                    bufferedReader.coseC;
 16
   口 Properties01
   D
 E:lJAvA\binljava.exe
 Users=root
 null

img


为什么这两个读取的不一样,一定要将readLine()读取到的给line才对吗

读取的内容不保存的话,因为已读标志(读取偏移量)已经修改,下次再读就是其他内容了

【以下回答由 GPT 生成】

原因是在循环中,每次调用bufferedReader.readLine()方法实际上读取的是文件中的下一行,并将该行作为字符串返回。但在代码中,第12行和第13行分别调用了两次readLine()方法,导致每次循环实际上读取了两行。

正确的写法应该是将每次读取到的内容赋给line变量,然后使用line变量进行处理。

以下是正确的代码示例:

public class Properties1 {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new FileReader("src\\mySQL.properties"));
        String line;
        while((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }
}

在上述代码中,我们将每次读取到的内容赋给line变量,并在循环中使用line变量进行处理,确保每次循环都是读取到的同一行内容。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^