1级、
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2级、
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3级、
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充说明:FileOutputStream 在实例化时,如果找不到指定文件,系统会自动创建该文件(注意:它只能帮你建文件,不能帮你建目录),再开始往文件里流数据。
FileReader、FileWriter例子程序:
文件内容(全世界所有国家的文字):
补充说明:在使用DataInputStream的时候要记得先流出的先流进(队列),否则数据会错乱,如上图例子程序,是先流出一个Double,再流出一个Boolean到数据源中,若从数据源流入的时候先流入Boolean,系统会取先流出的Double数据类型的低8位进行流入,而不是取后流出的Boolean数据类型进行流入,这样就会存在数据错乱现象。
补充说明:
1、当序列化某个实例时,除基础数据类型的成员变量外,该实例中的所有非基础数据类型的成员变量都需要实现序列化接口(注意:除基础数据包装类型及一些Java已经实现序列化接口的类型外)
2、当Object流第一次写入某个实例时,该实例会被序列化,该实例一旦写入(也就说一旦序列化)数据源,以后再用同一个Object流写入同一个实例时,写入的将是该实例第一次序列化时的数据(也就可以理解为:同一个实例对于同一个输出流来说,只能被序列化一次)。
补充说明:两个接口Serializable(序列化:JDK默认的序列化过程)、Externalizable(外部序列化:可自定义实例序列化过程,它是Serializable的子类)