Java控制台输入输出详解 - 编程入门网
Java控制台输入输出详解时间:2011-01-25 csdn博客 exceljava初学java时,或许大家都遇到过一个问题,从控制台获取字符,大家最常见的便是通过System.in.read();取得输入的字符,代码如下: public static void receiveOneChar(){//得到一个输入的字符 char ch=''2''; System.out.println("please enter a number:"); try { ch=(char)System.in.read(); } catch (IOException e) { e.printStackTrace(); } System.out.println("your entered char is:"+ch); } 但是该方法只能获得一个输入的字符,为了获得更多的输入字符,或者要实现a,b相加我们该如何实现呢?看下面: 我们知道,java中是以流进行输入输入的,其中System类管理基本输入输出流和错误流, System.out 将流输出到缺省位置 System.in 获得输入 System.err 输出错误信息 每当main方法被执行时,系统会自动生成上述三各对象; 基本输入流InputStream是个抽象类,它有如下方法供子类继承: read(); 从流中读入数据; skip();跳过流中若干各字节; available();返回流中可用字节数; mark();在流中标记一个位置; reset();返回标记的位置; markSupport();是否支持标记和复位操作; close();关闭流; 其中,read()方法有三个版本; int read();读一个整数; int read(byte[] b);读多个字节到一个字节数组; int read(byte[] b,int off,int len);从字节数组的某各位置读取len长度的字节; Java控制台输入输出详解(2)时间:2011-01-25 csdn博客 exceljava下面的程序利用int read(byte[] b);实现从控制台读取多个字符; public static void receiveSomeChar(){//通过字节数组得到输入 byte btArray[]=new byte[128]; System.out.println("please Enter something:"); try { System.in.read(btArray); } catch (IOException e) { e.printStackTrace(); } System.out.println("your entering is:"+new String(btArray));//由字节数组构造String } 下面通过BufferedReader,InputStreamReader来获得控制台输入; public static void receiveSomeCharByBufferedReader(){ System.out.println("please Enter something:"); InputStreamReader in=null; BufferedReader br=null; in=new InputStreamReader(System.in);//该处的System.in是各InputSream类型的; br=new BufferedReader(in); String str=""; try { str = br.readLine();//从输入流in中读入一行,并将读取的值赋值给字符串变量str } catch (IOException e) { e.printStackTrace(); } System.out.println("your Entered is :"+str); } 好了,有了上面的基础,我们来实现c语言中常见的输入两个整数,输出两者的和的问题,也就是上面说的a+b的问题; 且看下面的代码: public static void twoIntAdd(){ int one=0; int two=0; String temp=null; System.out.println("please enter the first integer:"); try { BufferedReader br1=new BufferedReader(new InputStreamReader(System.in)); temp=br1.readLine(); one=Integer.parseInt(temp); System.out.println("please enter the second integer:"); BufferedReader br2=new BufferedReader(new InputStreamReader(System.in)); temp=br2.readLine(); two=Integer.parseInt(temp); } catch (IOException e) { e.printStackTrace(); } System.out.println(one+"+"+two+"="+(one+two)); } 因为时间关系,没有对输入进行验证,一旦输入数据类型不对,整个程序将会出错,细致入微的态度做程序时应该牢记。这里暂且就不验证了。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |