312 标准输入流

36 篇文章 0 订阅

312 标准输入流

(理论课)

(myOtherStream)

(讲解Scanner(System.in)的原理)

(查看帮助文档System)

System类中有两个静态的成员变量

- public static final InputStream in      标准输入流,通常该流对应键盘输入or由主机环境or由用户指定的另一个输入源

- public static final OutputStream out    标准输出流,通常该流对应显示输出or由主机环境or由用户指定的另一个输出目标

(这里说的in、out,是变量,System类中的变量)

---------------------------------------------

package e312;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Scanner;

public class SystemInDemo {

    public static void main(String[] args) throws IOException {

//        InputStream is = System.in;

//        int by;

//        while ((by = is.read()) != -1) {

//            System.out.print((char) by);

//        }

//        以上代码,运行后可在键盘输入数据,但不可输入中文,否则写屏乱码

//        因字节流默认使用UTF-8编码然后解码,故乱码

//如何把字节流转换为字符流?——用转换流

//        InputStreamReader isr = new InputStreamReader(is);

//如何把字节流转换为字符流,且能读取一行?

//这就需要字符缓冲输入流(BufferedReader)的特有方法

//        BufferedReader br=new BufferedReader(isr);

//        截止上句为止,InputStreamReader isr = new InputStreamReader(is);通过is(字节流)读数据

//        然后InputStreamReader isr = new InputStreamReader(is)把数据转换为字符流

//        然后BufferedReader br=new BufferedReader(isr);把数据包装起来,以便使用字符缓冲输入流(BufferedReader)的特有方法读取一行的数据

//以上3步可以1步到位

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

//下面进行测试

        System.out.println("\tsay something?");

        String line = br.readLine();

        System.out.println("\tyou said that:" + line);

        System.out.println("\n\tgive me a integer:");

        int i = Integer.parseInt(br.readLine());

        System.out.println("\tyour integer is:" + i);

//        自己实现键盘录入数据太麻烦了,Java提供了一个类供我们直接使用,就是Scanner

        Scanner sc = new Scanner(System.in);

    }

}

/*

    say something?

你好

    you said that:你好

    give me a integer:

4

    your integer is:4

 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值