标准输入输出流、打印流、对象序列化(对象写入文件 读取)、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

 

 例:集合写入文件

  结果 

 

 例:集合读取文件

   结果 

 

 

 

 

   

 

posted @ 2020-05-12 02:50  mengjiabei  阅读(301)  评论(0)    收藏  举报