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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王晓楠 中级黑马   /  2013-1-26 16:32  /  1664 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. public class InputstreamReadrDemo {

  2.         public static void main(String[] args) throws IOException {               
  3.                 InputStreamReader isr = new InputStreamReader(System.in);
  4.                 int x;
  5.                 while((x=isr.read())!=-1){
  6.                         System.out.print(x);
  7.                 }
  8.                 isr.close();
  9.                 }
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

6 个回复

倒序浏览
你这个程序是接收键盘输入,程序不知道你什么时候结束输入!以前我们在读取文件时,用这个程序,可以结束,那是因为操作系统为我们设定了一个结束标记。现在键盘输入要我们自己设定一个结束标记

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
黄锦成 发表于 2013-1-26 16:45
你这个程序是接收键盘输入,程序不知道你什么时候结束输入!以前我们在读取文件时,用这个程序,可以结束, ...

为什么还要读取输入,输入不就是在第5行输入一次吗,
回复 使用道具 举报
王晓楠 发表于 2013-1-26 17:11
为什么还要读取输入,输入不就是在第5行输入一次吗,

你使用了while循环啊,读取了一次,还会循环下去的

评分

参与人数 1黑马币 +1 收起 理由
王晓楠 + 1 很给力!

查看全部评分

回复 使用道具 举报
read()是阻塞式方法,读取流是System.in时,如果键盘没有录入,while循环中read会一直阻塞等待,这时需要定义结束标记,以告诉read方法,读取完了。如果把System.in换成一个硬盘上的文件,因为文件自己有结束标记,当read()方法读到结束标记时,会返回-1,跳出while循环。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
楼主这个程序初衷应该是希望键盘输入一个字符,然后判断是否为-1,如果不是则把这个数字打印出来,如果是则停止程序,但是楼主用的InputStream中的read方法是返回这个对象的下一个数据字节,而不是读取你键盘输入的字符
所以改了下
  1. import java.io.*;
  2. public class InputstreamReadrDemo {

  3.         public static void main(String[] args) throws IOException {               
  4.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  //调用BufferedReader类
  5.                // String am=br.getEncoding();
  6.                String x=null;
  7.                 while((x=br.readLine()).compareTo("Stop")!=0){                            //readline方法是返回键盘输入的字符串,判断是否输入stop字符串,如果是,则退出
  8.                
  9.                         System.out.println(x);
  10.                 }
  11.                 br.close();
  12.                 }
  13. }
复制代码
仅是猜测下楼主的具体意思,如果有误,无视本楼就好

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
知道了,谢谢各位啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马