标准输入输出流(System.in,System.out)

本文探讨了Java中如何使用标准输入流(System.in)从键盘接收输入,处理中文乱码问题,并介绍了标准输出流(System.out)的换行技巧。重点讲解了字符流与字节流的区别,以及使用BufferedReader解决中文输入的问题。

1.标准输入流(System.in

首先这个标准输入流的默认输入设备是键盘,数据源是键盘,下面看一个简单的程序。

package fuxi;

import java.io.IOException;
import java.io.InputStream;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        InputStream in = System.in;
        int read = in.read();
        System.out.println((char) read);
    }
}

这一段程序是通过键盘录入读取,但是读取的只有一个。

 要是想读取多个可以设置一个while循环,对录入的进行判断是否是-1.

package fuxi;

        import java.io.IOException;
        import java.io.InputStream;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        InputStream in = System.in;
        int read;
        while ((read = in.read()) != -1)
            //一开始是打印int类型的,用char进行强制转换
            System.out.print((char) read);
    }
}

 在这里可以看见的是录入的字母或者数字都可以正常打印,但是录入要是中文就是不行,出现乱码,因为这个InputStream是字节流


,为了解决这个问题你可以用转换流进行转换。


package fuxi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();
        System.out.println(input);
    }
}

 

 在这里可以看见用转换流使用成功了,这里可以输入字母数字中文也可以输入不会乱码,原因在于BufferedReader,他继承于Reader,这是字符输入流。

 

 

 


 2.标准输出流(System.out

package fuxi;

import java.io.*;

public class StandardInputOutput {
    public static void main(String[] args) throws IOException {
        PrintStream out = System.out;
        out.print(true);
        out.print(99);
        out.print("我爱你啊你爱我蜜雪冰城甜蜜蜜");
        out.println("------");
        out.println(99);
        out.close();

    }
}

 这是可以看到是换行和没有换行的区别

print就是不换行而println就换行了。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开CT5的小曹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值