head first java ( 14章 )

- 对象的状态和行为

  对象有状态和行为两种属性, 行为存在于类中, 状态存在于个别对象中( 想内存 )

- 保存状态的两种方法 

  比如你编写了一个游戏程序, 里边有精灵, 矮人, 魔法师, 你肯定需要保存他们的状态, 比如 生命值, 武力值 等等, 那么如何保存呢?

  imageimage

- 创建序列化对象写入文件步骤

  image

  image

  image

- 在堆上的对象 –> 被实例化的对象

  image

  如果存储的实例变量不仅仅是标量类型, 如果是引用类型怎么办? 存储的目的在于恢复, 如果恢复实例变量是引用类型呢 ?

  image 

  当对象被序列化时, 被该对象引用的实例变量也会被序列化,且所有被引用的对象也会被序列化,最棒的是,这些操作都是自动的

  image

- 如果要让类能被序列化, 就必须实现 Serializable 接口

  例如 public class Box implements Serializable { // 这个接口没有方法需要实现, 只是说明这个类可以被序列化

  objectOutputStream.writeobject(myBox); // 这个myBox 类必须实现 Serializable 接口

  如果某实例变量不能或不应该被序列化, 就把它标记为 transient(瞬时)的

  transient String currentID;

- 解序列化, 还原对象

  image

  image

  image

  image

  image

  image

  image

- 存储与恢复游戏人物 源码及分析 

GameTest

 

GameCharacter

 

 

- 将字符串写入文本文档

  如果你想要非 java 程序来读取对象, 那么就可以存储成文本文档 ( 不过这样有点不安全 )

  image

  使用 Filewriter

  FileWriter writer = new FileWriter(“Foo.txt”);

  writer.write(“hello foo!”);  // 以字符串做参考

  writer.close();

  注意: 以上代码要有 try catch .

- java.io.File 这个类 

  file这个类代表磁盘文件, 而不是文件中的内容.

  File 有个很有用的功能就是它提供一种比使用字符串文件名来表示文件更安全的方式.( 可以检查路径是否合法 )

  image

- 缓冲区的奥妙

  image

  image

- 读取文件 源代码分析 

  image

posted @ 2013-04-17 21:27  神之一招  阅读(383)  评论(0)    收藏  举报