JAVA中的IO流-转换流-利用桥梁在字符流与字节流之间转换

InputStreamReader: 字节流转换为字符流的桥梁
OutputStreamWriter: 字符流转换为字节流的桥梁

将字节流转换为字符流例子:

import java.io.*;

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

        //字节流的输入
        InputStream input= System.in;

        //桥梁...字节流转换为字符流
        InputStreamReader isr = new InputStreamReader(input);

        //高效
        BufferedReader bufr = new BufferedReader(isr);

        /*---------------------------------------------*/

        //字节流的输出
        OutputStream out = System.out;

        //桥梁...字符流转换为字节流
        OutputStreamWriter ous = new OutputStreamWriter(out);

        //高效
        BufferedWriter bufw = new BufferedWriter(ous);

        String str = null;

        //readLine() 读一行文字
        while((str = bufr.readLine()) != null) {
            if("over".equals(str)) {
                break;
            }
            //写入
            //toUpperCase() 小写转换为大写
            bufw.write(str.toUpperCase());
            //换行
            bufw.newLine();
            //刷新
            bufw.flush();
        }
        
    }
}

运行:
在这里插入图片描述
这里不用使用关闭流close()方法…因为如果使用的话,后面重新创建一个流…会抛异常…因为调用系统的IO流关闭后,就不会开启了.


简单的需求: 将键盘录入的数据写入到文件中.

字节流转换为字符流 方便操作文本文件

import java.io.*;
public class Demo {
    public static void main(String[] args) throws IOException{
        //字节流
        InputStream input = System.in;

        //利用桥将字节流转换为字符流
        InputStreamReader insr = new InputStreamReader(input);

        //加入缓冲区提高效率
        BufferedReader bufr = new BufferedReader(insr);
        
        
        /*------------------------------------*/

        //写入目的地
        FileWriter fw = new FileWriter("test.txt");

        //加入缓冲区提高效率
        BufferedWriter bufw = new BufferedWriter(fw);
        
        String str = null;
        
        while((str = bufr.readLine()) != null) {
            if("over".equals(str)) {
                break;
            }
            
            //写入
            bufw.write(str);
            
            //换行
            bufw.newLine();
            
            //刷新
            bufw.flush();
        }
        
        bufw.close();
    }
}

运行写入文件 :
在这里插入图片描述
打开文本文件进行查看
在这里插入图片描述

想要便捷可以直接这样写

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

字节流与字符流相互转换流的流程图
在这里插入图片描述

发布了87 篇原创文章 · 获赞 43 · 访问量 3997

猜你喜欢

转载自blog.csdn.net/weixin_42947972/article/details/103467093