场景

从文件中读取数据

BufferedReader使用方法简单记录_java

public static void main(String[] args) {
        System.out.println("hello,   world    s      ".toCharArray());
        // 打印结果: "hello,   world    s      ";

        try {
            /**
             * 读到缓存
             */
            char[] buffer = new char[1000];
            Reader reader =  new FileReader("/Users/qiqi/test.txt");
            while (reader.read(buffer) != -1) {
                System.out.println(buffer);
            }

            System.out.println("===================================");

            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/qiqi/test.txt")));
            /**
             * 案例一:此时 在 while 中读去一次 此时读到了 HEllo, 但是没有打印,在下一行又读到了第二行,此时打印了,然后又在 while 中
             * 读到了第三行,没有打印,之后在下一行去读第四行,但是没有任何内容,所以为空
             *
             * 案例二:解决办法,每次读取成功后放到string 中
             */
            // 案例一
            while (br.readLine() != null) {
                System.out.println(br.readLine());
            }
            // 案例二
            String s = null;
            while ((s = br.readLine()) != null) {
                System.out.println(s);
            }

            System.out.println("================================");
            // 或者 一行一行地读
            System.out.println(br.readLine());
            System.out.println(br.readLine());
            System.out.println(br.readLine());

        } catch (IOException e) {
            e.printStackTrace();
        } finally {

        }
    }

结果

hello,   world    s      
HEllo
success
nihao
===================================
success
null
================================
null
null
null

要注意的点

共用一个读指针

看代码:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/qiqi/test.txt")));
BufferedReader br2 = br;

...

System.out.println("==============  案例一:  ==================");
// 案例一
 while (br.readLine() != null) {
     System.out.println(br.readLine());
 }
 System.out.println("==============  案例二:  ==================");
 /**
  * 此时 br2 定义如下:
  * BufferedReader br2 = br; br he br2 通用一个读指针, 由于br已经读取完毕,所以br2 读到的结果为空
  */
 // 案例二:
 String s = null;
 while ((s = br2.readLine()) != null) {
     System.out.println(s);
 }

结果如下:
BufferedReader使用方法简单记录_赋值_02

当 br2 赋值为:

BufferedReader br2 = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/qiqi/test.txt")));

结果如下:
BufferedReader使用方法简单记录_java_03