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();
    }
}

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

运行前

没有关闭字符输出流:

不关闭流

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

flush()

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值