//InputStreamReader 使用构造函数将字节流转为字符流
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("src/a.txt"));
//OutputStreamWriter 使用构造函数将字节输出流转为字符输出流
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("src/b.txt"));
以上为网上查找相关问题时出现最多的结果。
大大的疑问
明明两个都是通过构造函数将字节流转为了字符流?是不是写错了?
- 网上解答:“字节流转换成字符流”是指API的转换,“字符流转换成字节流”是指在write的时候数据的转换。
个人理解:
- new InputStreamReader(new FileInputStream(“src/a.txt”)) 返回的是一个字符输入流,此时可以理解通过构造方法将传入的字节流对象转换为字符流;
- new OutputStreamWriter(new FileOutputStream(“src/b.txt”)) 虽然同样是返回一个字符流,但是在write 的时候最终写入的还是 二进制字节文件;
个人学习笔记,欢迎纠错补充。
2022.09.16 23:24