Java基础: 基本输入输出
2011-03-12 22:16
543 查看
输入和输出是应用程序与用户进行交互的方式,在命令行方式下通过标准输入和输出设备(键盘和显示器的控制台),在windows应用中可以通过图形用户界面与用户进行交互,而Web应用中主要通过浏览器和HTML语言与用户进行交互。图形用户界面现在用的不是很多,而Web应用比较多。而在学习Java基本语法的时候,基本的通过命令行方式的输入和控制台方式的输出使用比较方便,可以采用这种方式。本次内容介绍基本的通过命名行方式的输入和输出。
基本输出
输出主要使用System.out.print和System.out.println方法。它们的区别是前者不换行,而后者输出之后会换行。可以输出任何数据类型。例如:
System.out.println(1111);
System.out.println(true);
System.out.println(2323.33);
System.out.println("字符串");
System.out.println('a');
基本输入
下面主要介绍如何接受键盘的输入。
最基本的方式是通过System.in.read()方法,但是该方法每次接收一个字符,方法的返回值是该字符的编码。例如,要接收一个输入,可以使用如下代码:
temp = System.in.read();
其中,temp为int类型变量。
如果要接收一个数字,例如22,需要自己处理,下面的例子展示了如何把输入信息转换成数字:
【例1】
package iotest;
public class SimpleIOTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 用于保存5个数字的数组
int a[]=new int[5];
int i=0;
int temp;
while(true){
// 获取输入字符
temp = System.in.read();
if((char)temp==' '){
//
遇到空格表示下一个整数
i++;
}
else if((char)temp=='/r'){
//
换行符结束
break;
}else{
//
把输入的字符构造成数字
a[i] = a[i]*10+Integer.parseInt(String.valueOf((char)temp));
}
}
for(int element:a){
// 循环输出5个数字
System.out.println(element);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
这种方式非常麻烦,下面介绍两种常用的方式。
使用BufferedReader
BufferedReader对基本输入流System.in进行了封装,使用它每次可以读入一行数据,然后可以再对数据进行分析,下面的例子完成了与上面的例子相同的功能,但是代码更容易理解,里面有很多代码不理解没有关系,先记住代码。
【例2】
package iotest;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class BufferedReaderTest {
public static void main(String args[]){
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 用于保存5个数字的数组
int a[] = new int[5];
// 创建输入流对象
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 读取一行信息
String input = reader.readLine();
// 以空格为分隔符,转换成数组
String[] numbers = input.split(" ");
// 把字符串转换为数字,并输出
for(int i=0;i<5;i++){
// 把字符串转换为数字
a[i] = Integer.parseInt(numbers[i]);
System.out.println(a[i]);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
使用Scanner
使用BufferedReader使代码简单了一些,但是还不够简单,使用Scanner可以使代码更简单。下面的代码展示了用法。
【例3】
package iotest;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 用于保存5个数字的数组
int a[] = new int[5];
for(int i=0;i<5;i++){
// 把字符串转换为数字
a[i] = scanner.nextInt();
System.out.println(a[i]);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
基本输出
输出主要使用System.out.print和System.out.println方法。它们的区别是前者不换行,而后者输出之后会换行。可以输出任何数据类型。例如:
System.out.println(1111);
System.out.println(true);
System.out.println(2323.33);
System.out.println("字符串");
System.out.println('a');
基本输入
下面主要介绍如何接受键盘的输入。
最基本的方式是通过System.in.read()方法,但是该方法每次接收一个字符,方法的返回值是该字符的编码。例如,要接收一个输入,可以使用如下代码:
temp = System.in.read();
其中,temp为int类型变量。
如果要接收一个数字,例如22,需要自己处理,下面的例子展示了如何把输入信息转换成数字:
【例1】
package iotest;
public class SimpleIOTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 用于保存5个数字的数组
int a[]=new int[5];
int i=0;
int temp;
while(true){
// 获取输入字符
temp = System.in.read();
if((char)temp==' '){
//
遇到空格表示下一个整数
i++;
}
else if((char)temp=='/r'){
//
换行符结束
break;
}else{
//
把输入的字符构造成数字
a[i] = a[i]*10+Integer.parseInt(String.valueOf((char)temp));
}
}
for(int element:a){
// 循环输出5个数字
System.out.println(element);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
这种方式非常麻烦,下面介绍两种常用的方式。
使用BufferedReader
BufferedReader对基本输入流System.in进行了封装,使用它每次可以读入一行数据,然后可以再对数据进行分析,下面的例子完成了与上面的例子相同的功能,但是代码更容易理解,里面有很多代码不理解没有关系,先记住代码。
【例2】
package iotest;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class BufferedReaderTest {
public static void main(String args[]){
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 用于保存5个数字的数组
int a[] = new int[5];
// 创建输入流对象
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 读取一行信息
String input = reader.readLine();
// 以空格为分隔符,转换成数组
String[] numbers = input.split(" ");
// 把字符串转换为数字,并输出
for(int i=0;i<5;i++){
// 把字符串转换为数字
a[i] = Integer.parseInt(numbers[i]);
System.out.println(a[i]);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
使用Scanner
使用BufferedReader使代码简单了一些,但是还不够简单,使用Scanner可以使代码更简单。下面的代码展示了用法。
【例3】
package iotest;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
System.out.println("请输入5个整数,以空格分开,以回车结束:");
try{
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 用于保存5个数字的数组
int a[] = new int[5];
for(int i=0;i<5;i++){
// 把字符串转换为数字
a[i] = scanner.nextInt();
System.out.println(a[i]);
}
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}
相关文章推荐
- 黑马程序员--Java基础学习之IO流之字节流、字符流、读取写入文件、Copy文件、键盘输入输出、流操作的基本规律
- Java标准输入输出+基础理论+基本数据类型总结
- Java基础:第十七讲 基本输入输出
- Java Web基础:第十一讲 基本表单元素
- 我理解的Java并发基础(一):一些基本概念
- 关于Java基础输入输出IO的问题
- Java语言基础算术运算符的基本用法
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- Java基础之八大基本类型简介
- 【黑马程序员】------java基础----String类、StringBuffer(StringBuilder)、基本数据类型包装类
- java基础入门-----list容器的基本操作3
- java基础三(基本数据类型)
- java基础:基本程序设计结构-1
- Java高手真经_编程基础卷——读书笔记(8)——Java类的基本构成
- Java_语法基础_优先选择基本类型
- java基础总结20-java常用API(基本类型包装类)
- 【深入Java基础】java八种基本数据类型及其包装类
- Java基础知识(四) log4j 的基本配置
- 【Java基础】八种基本数据类型--原码反码补码
- JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)