当前位置:   article > 正文

Java IO 3-字节流与字符流的区别_3.输入流和输出流,字节流和字符流的区别是什么

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();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

运行前

没有关闭字符输出流:

不关闭流

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

flush()

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/469642
推荐阅读
相关标签
  

闽ICP备14008679号