转换流

字节流与字符流转换

       InputStreamReader/OutputStreamWriter用来实现将字节流转化成字符流。比如,如下场景:

      System.in是字节流对象,代表键盘的输入,如果我们想按行接收用户的输入时,就必须用到缓冲字符流BufferedReader特有的方法readLine(),但是经过观察会发现在创建BufferedReader的构造方法的参数必须是一个Reader对象,这时候我们的转换流InputStreamReader就派上用场了。

      而System.out也是字节流对象,代表输出到显示器,按行读取用户的输入后,并且要将读取的一行字符串直接显示到控制台,就需要用到字符流的write(String str)方法,所以我们要使用OutputStreamWriter将字节流转化为字符流。

【示例】

import java.io.*;

/*
转换流:InputStreamReader OutStreamWriter
1、以字符流的形式操作字节流
2、制定字符集
 */
public class TestConvert {
    public static void main(String[] args) {
        //操作System.in和System.out
        try(BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(System.out));){
            //循环获取键盘的输入(exit退出),输出此内容
            String msg="";
            while(!msg.equals("exit")){
                msg=reader.readLine();//循环获取
                writer.write(msg);//循环输出
                writer.newLine();
                writer.flush();//强制刷新
            }
        }catch(IOException e){
            System.out.println("操作异常");
        }
    }
}

【运行结果】

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值