Java基础:第十七讲 基本输入输出

 

输入和输出是应用程序与用户进行交互的方式,在命令行方式下通过标准输入和输出设备(键盘和显示器的控制台),在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());
              }
       }
}
还有其他的next 方法,感兴趣的可以看JDK 的帮助文档。
 
 
    李绪成 CSDN Blog http://blog.csdn.net/javaeeteacher
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值