`
xiaoheliushuiya
  • 浏览: 402653 次
文章分类
社区版块
存档分类
最新评论

2009-05-17 10:12 java控制台输入输出详解

 
阅读更多
2009-05-17 10:12

java控制台输入输出详解

初学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长度的字节;

下面的程序利用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));

}

分享到:
评论

相关推荐

    java从控制台接收一个数字的实例详解

    主要介绍了java从控制台接收一个数字的实例详解的相关资料,这里提供实例代码,注释说明清晰,需要的朋友可以参考下

    《Java和Android开发实战详解》第2到5章源代码-by 南邮-陈杨

    2.3 Java程序结构与基本输出 24 2.4 Eclipse IDE的项目管理与使用 26 2.4.1 切换工作空间 26 2.4.2 Eclipse IDE的项目管理 27 2.4.3 Eclipse IDE的基本使用 29 2.5 良好的Java程序代码编写风格 32 2.5.1...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    1.5.4 Java虚拟机(Java Virtual Machine) 17 1.5.5 HelloWorld的整个流程 17 1.6 小结:我们学会了编译和运行一个Java程序! 18 1.7 习题 19 第2章 搭建自己的集成开发环境 20 教学视频:31分钟 2.1 安装...

    javascript控制台详解

    //控制台输入 网页中不会输出 console.info(); //一般信息 console.debug(); //除错信息 console.warn(); //警告提示 console.error(); //错误提示 “console.log();” 可以用来取代 “alert();” 或 “...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    1.5.4 Java虚拟机(Java Virtual Machine) 17 1.5.5 HelloWorld的整个流程 17 1.6 小结:我们学会了编译和运行一个Java程序! 18 1.7 习题 19 第2章 搭建自己的集成开发环境 20 教学视频:31分钟 2.1 安装...

    Java怎么从键盘输入内容(Java Scanner类的用法详解)

    Java的输入不像 C 等其他语言那样的简便的输入 scanf 比如输入一个整数型的数 scanf("%d",&a); 这篇文章讲介绍Java怎么从键盘输入内容以及Scanner类的其他用法 Scanner类简介 java.util.Scanner 是 Java5 的新特征...

    Java开发技术大全 电子版

    7.6.1控制台输入类Scanner257 7.6.2格式化输出printf258 7.7序列化261 7.8本章小结264 第4篇Java中的高级技术 第8章Java的多线程机制266 8.1线程的概念266 8.1.1多线程的特点266 8.1.2线程的状态267 8.2...

    Node.js用readline模块实现输入输出

    在学C++的时候,有cout和cin,Java也有println和Scanner控件,Node.js也有如同C++和Java的标准输入,当然,...下面这篇文章就给大家详细介绍一下readline模块,来实现Node.js的控制台输入输出。有需要的可以参考借鉴。

    Maven权威指南 很精典的学习教程,比ANT更好用

    10. 构建生命周期 10.1. 简介 10.1.1. 清理生命周期 (clean) 10.1.2. 默认生命周期 (default) 10.1.3. 站点生命周期 (site) 10.2. 打包相关生命周期 10.2.1. JAR 10.2.2. POM 10.2.3. Maven Plugin ...

Global site tag (gtag.js) - Google Analytics