A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈波 中级黑马   /  2012-5-19 20:59  /  1587 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么键盘录入System.in源是inputStream?

3 个回复

倒序浏览
因为System类里面的一个静态属性in是inputStream类型的,你调用System.in获取的就是一个inputStream对象

22.jpg (4.95 KB, 下载次数: 12)

22.jpg

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
首先看一下java提供的API函数说明文档

system.in它是一个标准的输入流,返回类型InputStream()类型。所以这样简单理解一下,键盘录入的源是InputStream.
你也可以这样认为,从键盘录入时,是以字节的形式存入,虽然最终在控制台显示的时候是字符,那也是通过转换后看到的结果,其内层结构都是二进制形式。
回复 使用道具 举报
可对比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();
   }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马