目录
IO指的是Input和Output,即输入和输出,以内存为中心
Input指从外部读取数据到内存。 例如:把文件从磁盘读取到内存
Output指把数据从内存输入到外部。 例如:把数据从内存写入到文件
IO流以byte(字节)为最小单位,因此也称为字节流。例如我们要从磁盘读取一个文件,里面包含6个字节,就相当于读取了6个字节的数据,这6个字节是按顺序读入的,所以是输入字节流;反过来,把6个字节从内存写入到磁盘,就说输出字节流
InputStream:输入字节流
OutputStream:输出字节流
如果我们需要读写的是字符,并且字符不全是单字节表示的ASCII字符,那么按照char来读写显然方便,这种流称为字符流,字符数据以char为最小单位。
Reader:输入字符流
Writer:输出字符流
序列化是指把一个Java对象件变成一个二进制文件,本质上就是byte[]数组
为什么要把java对象序列化?
答:因为序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程,这样就相当于把java对象存储到文件或者通过网络传输出去了
反序列化就是把一个二进制文件变成Java对象,有了反序列化,保存到文件中的byte[]数组又可以变回Java对象,或者从网络上读取byte[]并把它变回Java对象
9.2.3 Serializable
一个Java对象要能序列化,必须实现一个特殊的 java.io.Serializable接口,定义如下:
public interface Serializable {
}

