Java如何从控制台中读取数据

来源:java认证发布时间:2012-11-12 13:15:52java认证视频

    0 引言
    从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择。下面来看一下,各个版本中如何从控制台中读取数据以及各自的优缺点。
    1 JDK 1.4 及以下版本读取的方法
    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);
    }
    }
    上面的两种方法都有个共同的缺点--只能读取字符串,若需要读取其他类型的数据需要手工进行转换。

    考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

    编辑特别推荐:

    Java认证如何查看ControlFile中的内容  

    Java中基本数据类型与应用

    Servlet中的八大Listener

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答