在程序开发中,有时会遇到字节流和字符流之间需要进行转换的可能。在java.io包中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。
OutputStreamWriter是Writer的子类,能够将一个字节输出流转换成字符输出流,方便直接写入字符,而InputStreamReader是Reader的子类,能够将一个字节输入流转换成字符输入流,方便直接读取字符。下面通过案例学习如何将字节流转换为字符流,为了提高读/写效率,通过字符缓冲流实现转换的操作,如文件5-9所示。
文件5-9 Example09.java
package com.itheima.example; import java.io.*; public class Example09 { public static void main(String[] args) throws Exception { //创建字节输入流 FileInputStream input=new FileInputStream("read.txt"); //将字节输入流转换成字符输入流 InputStreamReader streamReader=new InputStreamReader(input); //赋予字符输入流对象缓冲区 BufferedReader bufferReader=new BufferedReader(streamReader); //创建字节输出流 FileOutputStream output=new FileOutputStream("dest2.txt") //将字节输出流转换成字符输出流 OutputStreamWriter streamWriter=new OutputStreamWriter(output); //赋予字符输出流对象缓冲区 BufferedWriter bufferWriter=new BufferedWriter(streamWriter); String line=null; //判断是否读到文件末尾 while ((line=bufferReader.readLine()) !=null) { bufferWriter.write(line); //输出读取到的文件 } bufferReader.close(); bufferWriter.close(); } }
程序运行结束后,按F5键刷新chapter05项目后打开dest2.txt文件,执行结果如图5-5所示。
在文件5-9中,实现了字节流和字符流之间的转换,将字节流转换为字符流,从而实现直接对字符的读/写。需要注意的是,在使用转换流时,只能针对操作文本文件的字节流进行转换,如果字节流操作的是图片或者音频,此时转换为字符流就会造成数据丢失。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/16559.html