Java(五十五)转换流(InputStreamReader和OutputStreamWriter)

今天我们来学习流的最后一部分:转换流InputStreamReader和OutputStreamWriter,缓冲转换流:BufferedReader和BufferedWriter

这几个我们学一下构造方法就可以了。成员方法跟字符流的都一样。

一:什么是转换流?

可以将字节流转换成字符流

转换流是所有流中唯一能设置编码方式的流

二:InputStreamReader

1 :构造方法

(1):public InputStreamReader(InputStream in)

(2):public InputStreamReader(InputStream in,String charsetName)

具体使用参见文件复制粘贴

三:OutputStreamWriter

1 :构造方法

(1):public OutputStreamWriter(OutputStream out)

(2):public OutputStreamWriter(OutputStream out,String charsetName)

具体使用参见文件复制粘贴

四:文件复制粘贴

1 :一次复制一个字符,一次写入一个字符

java 复制代码
public static void main(String[] args) {
        try {
            InputStreamReader inp = new InputStreamReader(new FileInputStream("aaa.txt"));
            OutputStreamWriter outp = new OutputStreamWriter(new FileOutputStream("bbb.txt", true));
            int len = 0;
            while ((len = inp.read()) != -1) {
                outp.write(len);
            }
            outp.flush();
            System.out.println("复制成功!");
        } catch (Exception e) {
            System.out.println("出错了!");
        }
    }

2 :一次读取一个字符数组,一次写出一个字符数组的一部分

java 复制代码
    public static void main(String[] args) {
        try {
            InputStreamReader inp = new InputStreamReader(new FileInputStream("aaa.txt"));
            OutputStreamWriter outp = new OutputStreamWriter(new FileOutputStream("ccc.txt", true));
            char[] ch = new char[1024];
            int len = 0;
            while ((len = inp.read(ch)) != -1) {
                outp.write(ch, 0, len);
            }
            outp.flush();
            System.out.println("复制成功!");
        } catch (Exception e) {
            System.out.println("出错了!");
        }
    }

3 :缓冲转换流:一次读取一个字符,一次写出一个字符

java 复制代码
    public static void main(String[] args) {
        try {
            BufferedReader inp = new BufferedReader(new InputStreamReader(new FileInputStream("aaa.txt")));
            BufferedWriter outp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("ddd.txt", true)));
            int len = 0;
            while ((len = inp.read()) != -1) {
                outp.write(len);
            }
            outp.flush();
            System.out.println("复制成功!");
        } catch (Exception e) {
            System.out.println("出错了!");
        }
    }

4 :缓冲转换流:一次读取一个字符数组,一次写出一个字符数组的一部分

java 复制代码
    public static void main(String[] args) {
        try {
            BufferedReader inp = new BufferedReader(new InputStreamReader(new FileInputStream("aaa.txt")));
            BufferedWriter outp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("ccc.txt", true)));
            char[] ch = new char[1024];
            int len = 0;
            while ((len = inp.read(ch)) != -1) {
                outp.write(ch, 0, len);
            }
            outp.flush();
            System.out.println("复制成功!");
        } catch (Exception e) {
            System.out.println("出错了!");
        }
    }

5 :一次读取一行,一次写出一行

java 复制代码
    public static void main(String[] args) {
        try {
            BufferedReader inp = new BufferedReader(new InputStreamReader(new FileInputStream("aaa.txt")));
            BufferedWriter outp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("ccc.txt", true)));
            String line = null;
            while ((line = inp.readLine()) != null) {
                line += "\n";
                outp.write(line);
            }
            outp.flush();
            System.out.println("复制成功!");
        } catch (Exception e) {
            System.out.println("出错了!");
        }
    }

以上大概就是转换流的基本使用。

有好的建议,请在下方输入你的评论。

相关推荐
華勳全栈11 分钟前
两天开发完成智能体平台
java·spring·go
alonewolf_9917 分钟前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹22 分钟前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理
专注_每天进步一点点23 分钟前
【java开发】写接口文档的札记
java·开发语言
代码方舟26 分钟前
Java企业级实战:对接天远名下车辆数量查询API构建自动化风控中台
java·大数据·开发语言·自动化
flysh0528 分钟前
C# 中类型转换与模式匹配核心概念
开发语言·c#
AC赳赳老秦28 分钟前
Python 爬虫进阶:DeepSeek 优化反爬策略与动态数据解析逻辑
开发语言·hadoop·spring boot·爬虫·python·postgresql·deepseek
浩瀚之水_csdn29 分钟前
Python 三元运算符详解
开发语言·python
zgl_2005377935 分钟前
ZGLanguage 解析SQL数据血缘 之 标识提取SQL语句中的目标表
java·大数据·数据库·数据仓库·hadoop·sql·源代码管理
liwulin050636 分钟前
【JAVA】创建一个不需要依赖的websocket服务器接收音频文件
java·服务器·websocket