Java的字节流、字符流和序列化区别

Java IO流

参考文章:

https://www.cnblogs.com/progor/p/9357676.html

Java的字节流、字符流和序列化区别_第1张图片
牢记六个字:读进来,写出去
Java的字节流、字符流和序列化区别_第2张图片

对象序列化

对象序列化与反序列化:将Java对象转变成字节流存储,称之为对象序列化。从字节流中恢复一个Java对象,称之为对象反序列化。 即是说,将对象转化为二进制,用于保存,或者网络传输。
序列化资格:只有实现了 Serializable 接口的对象,才可以被序列化。
序列化实现:通过 ObjectOutputStream.writeObject(Object) 将对象 Object 序列化。
反序列化实现:通过 ObjectInputStream.readObject() 反序列化一个对象。

区别

字符流:字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。字符流只能处理字符型的数据。
字节流:字节流处理单元为 1 个字节,操作字节和字节数组。字节流处理所有类型的数据,包括图片、音视频等。
序列化:序列化就是为了保存java的类对象的状态的,保存这个状态的作用主要用于不同jvm之间进行类实例间的共享。

总之,序列化是操作对象,IO流是操作文件。

你可能感兴趣的:(Java)