简述JavaIO流—转换流

本人小白一枚,欢迎大家一起讨论学习,如有错误,还望大家指教。

转换流

简述:转换流的出现方便了字符流与字节流之间的操作,是字符流与字节流之间的桥梁,并且可以对读取到的字节/字符指定特定的编码。
InputStreamReader:字节到字符的桥梁。
    String getEncoding():获取此流使用的字符编码的名称。
    boolean ready():判断此流是否已经准备好用于读取。如果其输入缓冲区不为空,或者可从底层字节流读 取字节,则已做好被读取准备。
OutputStreamWriter:字符到字节的桥梁。
    String getEncoding():获取此流使用的字符编码的名称。
这两个流对象是字符体系中的成员,他们有转换的作用,本身又是字符流,所以在构造的时候需要传入字节流对象进来。

案例一

键盘输入打印到控制台,小写字母转化成大写字母,遇到over退出。

public static void main(String[] args) throws IOException {
        // 获取键盘录入对象。
        // InputStream in = System.in;
        // 将字节流对象转成字符流对象,使用转换流。InputStreamReader
        // InputStreamReader isr = new InputStreamReader(in);
        // 为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader
        // BufferedReader bufr = new BufferedReader(isr);
        // 键盘的最常见写法。
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

        // OutputStream out = System.out;
        // OutputStreamWriter osw = new OutputStreamWriter(out);
        // BufferedWriter bufw = new BufferedWriter(osw);
        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));

        String line = null;

        while((line=bufr.readLine()) != null) {
            if("over".equals(line)) {
                break;
            }
            bufw.write(line.toUpperCase());
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
    }

案例二

采用指定的编码读取文本文件或输出文本文件,在IO流中,如果想要指定编码读写数据,只能使用转换流。

// 采用指定编码从文本读取内容
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "UTF-8"));
// 采用指定编码写入内容
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("test.txt"), "UTF-8"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值