BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in(Standard input stream)-
以字节为单位从键盘获取输入
InputStreamReader:
将字节转换为Unicode字符/将标准输入转换为读取器对象以与BufferedReader一起使用
Finally BufferedReader
:用于读取字符输入流(输入流阅读器)
String c = br.ReadLine();
- 一种用于从输入流中读取字符并将其放入字符串中的方法,而不是逐字节。
一切都在正确吗?如果有什么不对请更正!
答案 0 :(得分:6)
几乎就在那里,但是这个:
String c = br.readLine();
- 一种用于从输入流中读取字符并将其放入字符串中的方法,而不是逐字节。
它从输入阅读器中读取字符(BufferedReader
不了解流)并一次返回整行,而不是字符 。在层中考虑它,并且在InputStreamReader
层“之上”,“字节”的概念不再存在。
另外,请注意,您可以使用Reader
读取字符块而无需读取一行:read(char[], int, int)
- readLine()
的点是它将为您执行行结束检测
(如评论中所述,它也是readLine
,而不是ReadLine
:)
答案 1 :(得分:0)
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());
}
}
}
}