字节流和字符流的用法几乎完成全一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。
区别
字节流一般用来处理图像、视频、音频、PPT、Word等类型的文件。字符流一般用于处理纯文本类型的文件
字节流本身没有缓冲区,缓冲字节流相对于字节流,效率提升非常高,字符流本身就带有缓冲区
可以用转换流来进行转换;
举个例子
把a.txt文件中的字节先转换char型数组,再转换成字符流,因为char型可能会溢出的问题。但是会以空格的形式打印出来,所以用trim()方法来去除左右空格
/** * @Author: Adminstrator * @Date:2021 * @Description;转换流 * InputStreamReader用于将字节输入流转换为字符输入流, * OutputStreamWriter用于将字节输出流转换为字符输出流 * 使用转换流可以在一定程度上避免乱码,还可以指定输入输出所使用的字符集 */ public class TestTransfer { public static void main(String[] args) throws IOException { FileInputStream fis=new FileInputStream("a.txt"); InputStreamReader isr=new InputStreamReader(fis); char[] c=new char[fis.available()]; isr.read(c); FileOutputStream fos=new FileOutputStream("b.txt",true); OutputStreamWriter osw=new OutputStreamWriter(fos); osw.write(new String(c).trim()); osw.close(); isr.close(); fis.close(); } }
版权声明:本文为wind96原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。