标准输入输出流、打印流、对象序列化(对象写入文件 读取)、Properties (集合写入读取文件)
例: 键盘输入 字节 流
结果
结果2:由于是字节流一个一个转换 中文字符需要3个字节组成所以出现乱码。
例: 键盘输入 字符 流
结果
例: 控制台输出
结果
例: 字节打印流。
结果
例:字符打印流 一 ;用printWiter(string filename) 构造方法。
结果
例:字符打印流 二; 用printWiter(witer out,boolean autoFlush) 构造方法 。自动刷新。
第一个例子 比第一个例子简便了 2点 。 1.不用专门的换行 2.不用刷新 .
结果
例:对象序号话流(把对象写入文件)
注:学生对象 要实现 Serializable 接口
主要程序;
例:反序列化流(把文件内对象,读取 并输入打印)
结果
例:上面上个问题
学生类:
把学生对象存入文件的主程序
把学生对象从文件读取的主程序
结果:
如果把学生对象已经封装存入文件在对学生类进行修改,则读取学生类对象时候就会出错:如下
如果修改学生类:
在读取学生类对象就出错 。
解决办法: 给学生类加一个 常量ID private static final long serialVersionUID =42L;
例 :如果对象某个变量不想被序列化,可以在变量前面添加 transient ,如下 nianl 这个变量;
允许封装 读取
输出结果
例:
结果
comments //描述 信息 如果不写 需要 写 null
例:集合写入文件
结果
例:集合读取文件
结果