美文网首页
Java IO 流详解

Java IO 流详解

作者: Aaron_Swartz | 来源:发表于2019-10-02 17:10 被阅读0次

    Java Io 类图结构

    image.png
    • 命名特点:

    字节流:读写的都是字节。
    输入流:[xxx]InputStream
    输出流:[xxx]OutputStream

    字符流:读写的都是字符。
    输入流:[xxx]Reader
    输出流:[xxx]Writer

    对象序列化

    对象序列化就是把一个对象变为二进制数据流的一种方法。
    一个类要想被序列化,就必须实现java.io.Serializable接口。虽然这个接口中没有任何方法,就如同之前的cloneable接口一样。实现了这个接口之后,就表示这个类具有被序列化的能力。
    当我们使用Serializable接口实现序列化操作的时候,如果一个对象的某一个属性不想被序列化保存下来,那么我们可以使用transient关键字来修饰对象属性,这样该对象就不会序列化。

    • 何时使用字符流,何时使用字节流?为什么?

    使用字符流的应用场景: 如果是读写字符数据的时候则使用字符流。
    使用字节流的应用场景:不需要读写字符数据的时候就使用字节流,如读取avi、jpeg 等格式文件时。

    网上的一种说法:字节流读取单个字节,字符流读取单个字符(一个字符根据编码的不同,对应的字节也不同,如 UTF-8 编码是 3 个字节,中文编码是 2 个字节。)字节流用来处理二进制文件(图片、MP3、视频文件),字符流用来处理文本文件(可以看做是特殊的二进制文件,使用了某种编码,人可以阅读)。简而言之,字节是个计算机看的,字符才是给人看的。

    参考:
    1 Java IO流详解
    2 Java IO 详解

    相关文章

      网友评论

          本文标题:Java IO 流详解

          本文链接:https://www.haomeiwen.com/subject/tccrpctx.html