首页 > 其他 > 详细

标准输入流——手动实现键盘录入数据演示

时间:2020-04-22 15:32:45      阅读:63      评论:0      收藏:0      [点我收藏+]

在System类中,有两个静态成员变量:

  • public static final InputStream in 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。
  • public static final PrintStream out 通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。

当我们使用in方法来进行数据的输入时,会发现,由于字节流的缘故且是UTF-8编码,无法读取“中文”

public static void main(String[] args) throws IOException {
        //public static final InputStream in 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。
        InputStream is = System.in;
        //字节流写数据
        int by;
        while ((by=is.read())!=-1){
            System.out.print((char)by);
        }
    }

技术分享图片

 此时我们就需要用到转换流来进行字节流-->字符流的转换

转换成字符流后,读取数据操作除了一次读取一个字节、一次读取一个字节数组外,如果使用到一次只读取一行数据时,还需要用到字符缓冲输入流的特有方法,于是还需要将字符输入流包装成字符缓冲输入流

public static void main(String[] args) throws IOException {
        //public static final InputStream in 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。
        InputStream is = System.in;
        
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        System.out.println("请输入一个字符串:");
        String s = br.readLine();
        System.out.println("你输入的字符串是:"+s);

        System.out.println("请输入一个整数:");
        int i = Integer.parseInt(br.readLine());
        System.out.println("你输入的整数是:" +i);
    }

运行结果:

技术分享图片

通过上述操作后,会发现,手动实现键盘录入数据的代码实现过于复杂而且不方便,所以Java为我们提供了一个工具类:Scanner

通过Scanner来调用System.in来实现键盘录入数据的功能,十分的方便

技术分享图片

标准输入流——手动实现键盘录入数据演示

原文:https://www.cnblogs.com/pxy-1999/p/12752239.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!