用BufferedReader输入

来源:互联网 发布:网络教育大概多少钱 编辑:程序博客网 时间:2024/06/05 14:19

JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in 获得系统的输入流,再桥接至字符流从字符流中读入数据。示例代码如下:

import java.io.IOException;import java.io.InputStreamReader;public class Test1 {    public static void main(String[] args) {        String str = readString("请输入字符串:");        System.out.println("readString 方法的输入:" + str);    }    /**     * 使用系统的输入流,从控制台中读取数据<br/>     * 用于所用的JDK版本     * @param prompt 提示信息     * @return 输入的字符串     */    private static String readString(String prompt) {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        String str = null;        try {            System.out.print(prompt);            str = br.readLine();        } catch (IOException e) {            e.printStackTrace();        }        return str;    }}
从上面的代码段来看,这种控制台输入的方法非常地麻烦,为了能读取整行的数据,采用了BufferedReader 类来进行处理,而且在读取的过程中还需要捕获IOException 。不过这是 JDK 1.4 及以下版本中从控制台读取数据唯一的办法。还有一种非控制台读入数据的办法,就是采用 Swing 中的JOptionPane ,会弹出一个非常漂亮的输入对话框让使用者输入数据,但这是一种比较另类的做法,不推荐使用。

import javax.swing.JOptionPane;public class Test2 {    public static void main(String[] args) {        String str = readStringFromDialog("请输入字符串:");        System.out.println("readStringFromDialog 方法的输入:" + str);    }    /**     * 使用 JOptionPane的输入对话框,输入字符串<br/>     * 用于所用的JDK版本     * @param prompt 提示信息     * @return 输入的字符串     */    private static String readStringFromDialog(String prompt) {        return JOptionPane.showInputDialog(prompt);    }}
什么是在网上找到的用BufferedReader进行输入的一个例子,下面是自己写的一个测试的代码,java的输入真的是超级蛋疼!这么麻烦,算了,可能是我刚刚接触java还不习惯。

import java.util.*;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import javax.swing.JOptionPane;public class Test {public static void main(String args[]){int i;//int score[]=new int[3];int a1[]={6,5,4};int a2[]={9,8,7,2,1};System.arraycopy(a1,1,a2,1,2);for(i=0;i<a2.length;i++)System.out.print(a2[i]+"  ");System.out.println();Arrays.sort(a2);for(i=0;i<a2.length;i++)System.out.print(a2[i]+"  ");System.out.println();double b=0.0; //一定要初始化,不然输出那里会报错Byte c=0;try{System.out.print("请输入一个浮点数:");BufferedReader br=new BufferedReader(new InputStreamReader(System.in));b=Double.valueOf(br.readLine());System.out.print("请输入一个数:");//BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));c=Byte.valueOf(br.readLine());}catch(NumberFormatException e){System.out.println("输入的数字格式不对");}catch(IOException e){e.printStackTrace();}System.out.println("输入的浮点数是:"+b);System.out.println(b+"的平方根为:"+Math.sqrt(b));System.out.println("输入的数字是:"+c);String str=readStringFromDialog("请输入一个浮点数:");System.out.println("readStringFromDialog 方法的输入:"+ str);double a;a=Double.valueOf(str);System.out.println("输入的浮点数是:"+a);System.out.println("a+12= "+(a+12));}/** *使用 JOptionPane的输入对话框,输入字符串<br/>     *用于所用的JDK版本     *@param prompt 提示信息     *@return 输入的字符串 */private static String readStringFromDialog(String p){return JOptionPane.showInputDialog(p);}}