请问Java 当中:输入流中的System.in是什么意思

请问Java 当中:输入流InputStreamReader中为什么要写(System.in)
输出流BufferedReader为什么要写(in)
请详细讲解一下

一个 InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。

InputStreamReader 的 read() 方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader,例如:

InputStreamReader in = new InputStreamReader(System.in);
// System.in为系统基本输入输出,即键盘输入.调用System.in方法获得输入字符串,并用该字符串作为参数生成一个InputStreamReader对象in

BufferedReader dr = new BufferedReader(in);
//用InputStreamReader对象in作为参数生成一个IBufferedReader对象dr.用BufferedReader 封装 InputStreamReader,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。

关键要素说明:InputStreamReader 是将标准输入字节流转换为用于输入的字符流;BufferedReader将字符流转换为缓冲流,利用缓冲流的API的函数System.in读入命令行输入的一行字符,并赋值给字符串变量。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-28
可对比System.out,它是往控制台输出
而System.in是往控制台输入
API中的字段in的介绍System
public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
InputStreamReader是字节流通向字符流的桥梁
BufferedReader比Reader效率更高

//从控制台获得输入
public void readByLineFromConsoleAndPrint(){
System.out.println("==从控制台获得输入==");
try{
BufferedReader in=new BufferedReader(
new InputStreamReader(System.in));
System.out.println("请输入一行字符:");
temp=in.readLine();
System.out.println(temp);
}catch(IOException ioe){
ioe.printStackTrace();
}
}
第2个回答  推荐于2017-11-28
首先明确一个概念
InputStreamReader 和BufferedReader都是输入流
System.in 读取的是字节流
InputStreamReader读取的是字符流
BufferedReader读取的是字符串
System.in 和InputStreamReader属于低级流
BufferedReader属于高级流
通过高级流封装低级流 使我们更加方便操作本回答被提问者采纳
第3个回答  2007-10-28
为InputStream类型,代表标准输入流,默认的数据源为键盘。程序可以通过Systen.in读取标准输入流的数据!
第4个回答  2007-10-28
简单说:它是标准输入流,就是键盘输入流
相似回答