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

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

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

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

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

上面的一切都正确吗?如有错误请指正!

4

2 回答 2

6

快到了,但是这个:

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

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

另外,请注意,您可以在Reader不读取一行的情况下读取带有 a 的字符块:read(char[], int, int)- 关键readLine()是它将为您进行行尾检测。

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

于 2012-05-11T07:40:33.830 回答
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());
            }
        }



    }
}
于 2017-02-26T03:29:31.733 回答