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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 考不上黑马 初级黑马   /  2015-4-27 22:18  /  642 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位同学大家好,不是那种空泛的问题,是我的实际需求
问题是这样的,需要键盘录入一个整数。我嫌弃第一张方法麻烦,想用第二种可是我输入200缺打印的是842018829。我是不是应该乖乖写传统键盘录入就好还是?请给个解决方案。似乎是跟字节位数有关?
//BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); 用这个还需要字符串转整数什么的麻烦
                DataInputStream dis = new DataInputStream(System.in);
                int num = 0;
                try{
                        num = dis.readInt();
                }
                catch(IOException e){
                        throw new IOException("参数类型错误");
                }
                finally{
                        try{
                                dis.close();
                        }
                        catch(IOException e){
                                throw new RuntimeException("流关闭失败");
                        }
                }
                        System.out.println(num);

8 个回复

倒序浏览
哎呀,朋友已经告诉我问题了 DataInputStream必须和 DataOutputStream配套使用,键盘录入的是一个字节,我却读取了4个字节,所以出问题了。我还是乖乖的转换吧
回复 使用道具 举报
IO流……才开始接触……
回复 使用道具 举报
键盘录入不是要用Scanner导包么?
回复 使用道具 举报
怪学究 发表于 2015-4-28 00:06
键盘录入不是要用Scanner导包么?

导入方法很多吧关键都是把System.in导进去。Scanner听说控制台用的比较多。再说我看的视频也没有讲到这个类。所以不太了解。Scanner确实可以直接nextInt   谢谢了
回复 使用道具 举报
Chans_宇 发表于 2015-4-27 23:45
IO流……才开始接触……

加油,我觉得IO蛮简单的。分清楚源和目的还有数据类型就好。那些类都是有规律的,很好记
回复 使用道具 举报
不是用  用Scanner类的方法也可以!不要写那么多
回复 使用道具 举报
Scanner 方便一点;

  1. Scanner scan = new Scanner(System.in);
  2. int ai = scan.nextInt(); // 这样就可以接收键盘输入的整数了~
复制代码
回复 使用道具 举报
对呀  貌似 scanner方法 视频没有讲呀 还要自学呀  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马