Java IO 3-字节流与字符流的区别

java以流的形式操纵IO,又将流分为两种:字节流与字符流,对JavaIO流操作不清楚的可以参考

Java IO 2-字节流与字符流

那字节流与字符流之间又有什么区别呢

区别

字节流用于操作文件数据,网络传输等场景,而字符流适用于与字符串,中文有关的内容处理,因为Writer/Reader两个抽象类对字符的支持比较好。

除了这些,字符输出流写数据时是先将数据写入缓冲区,待字符输出流关闭后再写入到文件中,而字节输出流是直接写入到文件中,通过下面的例子,我们可以清楚的看到这一点。

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;

/**
 * 测试路径:E:\IO\demo.txt
 */


public class Test {
    public static void main(String[] args) throws Exception {
        // 测试:字符输出与字节输出区别
        File file = new File("E:\\IO\\demo.txt");
        // 父目录不存在,创建
        if(!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }

        String msg = "爱生活爱Java";
        Writer out = new FileWriter(file);
        out.write(msg);
        // 不关闭字符输出流
        // out.close()

        // 强制清空缓冲区
        // out.flush();
    }
}

运行程序前,测试文件夹:

Java IO 3-字节流与字符流的区别_第1张图片

没有关闭字符输出流:

Java IO 3-字节流与字符流的区别_第2张图片

使用强制清空缓冲区之后:

Java IO 3-字节流与字符流的区别_第3张图片

以上就是字符字节流之间最大的区别,由于学识所限,以后还会继续更新。

你可能感兴趣的:(JavaSE,JavaSE从零开始)