BufferedReader它可以包装字符流,拥有8192字符的缓冲区,将字符流放入缓存里,先把字符读到缓存里,到缓存满了或者你flush的时候,再读入内存,就是为了提供读的效率而设计的。

用法:

//接收数据  
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
                    String msg = in.readLine();  
                    if (null != msg){   
                        System.out.println(msg);  
                    }



注意点:read()方法判断是否为空

FileReader fr = new FileReader("D:\\Test.txt");
        BufferedReader bf = new BufferedReader(fr);

        int temp;
        while ((temp = bf.read()) != -1){
            System.out.println(bf.readLine());
        }



结果每行的第一个字符都没有显示出来,原因:(temp=bf.read())!=-1  每次都会先读取一个字节出来,所以后面的bf.readLine()读取的就是每行少一个字节.



String msg = null;
   while ((msg=bf.readLine())!=null){
    System.out.println(msg);
   }