字节流和字符流区别(附例子)

字节流和字符流的用法几乎完成全一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。

 字节流和字符流区别(附例子)_第1张图片

区别

字节流一般用来处理图像、视频、音频、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();
    }
}

你可能感兴趣的:(Java高级特性,java)