Bufferedreader解释?

时间:2012-05-11 07:38:38

标签: java

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.in(Standard input stream)-以字节为单位从键盘获取输入

InputStreamReader:将字节转换为Unicode字符/将标准输入转换为读取器对象以与BufferedReader一起使用

Finally BufferedReader:用于读取字符输入流(输入流阅读器)

String c = br.ReadLine(); - 一种用于从输入流中读取字符并将其放入字符串中的方法,而不是逐字节。

一切都在正确吗?如果有什么不对请更正!

2 个答案:

答案 0 :(得分:6)

几乎就在那里,但是这个:

  

String c = br.readLine(); - 一种用于从输入流中读取字符并将其放入字符串中的方法,而不是逐字节。

它从输入阅读器中读取字符BufferedReader不了解流)并一次返回整行,而不是字符 。在层中考虑它,并且在InputStreamReader层“之上”,“字节”的概念不再存在。

另外,请注意,您可以使用Reader读取字符块而无需读取一行:read(char[], int, int) - readLine()的点是它将为您执行行结束检测

(如评论中所述,它也是readLine,而不是ReadLine:)

答案 1 :(得分:0)

BufferedReader的目的是什么,解释?

Bufferedreader是一个java类,以下是这个类的层次结构。

java.lang.Object ==> java.io.Reader ==> java.io.BufferedReader

此外,BufferedReader提供了一种有效的内容阅读方式。非常简单.. 让我们看看下面的例子来理解。

import java.io.BufferedReader;
import java.io.FileReader;

public class Main {

    public static void main(String[] args) {

        BufferedReader contentReader = null;
        int total = 0; // variable total hold the number that we will add

        //Create instance of class BufferedReader
        //FileReader is built in class that takes care of the details of reading content from a file
        //BufferedReader is something that adds some buffering on top of that to make reading fom a file more efficient.
        try{
            contentReader = new BufferedReader(new FileReader("c:\\Numbers.txt"));
            String line = null;

            while((line = contentReader.readLine()) != null)

                total += Integer.valueOf(line);

            System.out.println("Total: " + total);
        }

        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }

        finally{
            try{
                if(contentReader != null)
                    contentReader.close();
            }

            catch (Exception e)
            {
                System.out.println(e.getMessage());
            }
        }



    }
}