A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敷衍ゝ微笑掩盖 初级黑马   /  2014-6-30 15:44  /  758 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 敷衍ゝ微笑掩盖 于 2014-7-1 08:34 编辑

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------

可以存取对象的流
ObjectInputStream  ObjectOutputStream
写入代码:
Person  p = new Person(“lisi”,32);
ObjectOutputStream oos= new ObjecOutputStream(new FileOutputStream(“文件”));
oos.writeObject(p)
读出代码:
ObjectInputStream ois= new ObjectInputStream(new FileInputStream(“文件”));
Person p = (Person)ois.readObject();
注意:
① Person类要实现序列化接口。在对对象时,要抛出或者捕获ClassNotFoundException- 找不到序列化对象的类。
② 静态变量不能被序列化。
③ 可以用transirent修饰一个是静态的属性变量,使这个变量也不能被实例化。
④ 可以用这个 ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;显示声明可序列化对象的Uid,即使该类里的东西变了,Uid也不会变,默认是会变化的。如:
Class Person implement  Serializable {
ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
String name;
Transirent Int age;//用transirent修饰后,跟下面的addr类似了。
Static String addr=china;//创建对象时,给该属性设置的值,通过对象操作流操作后,读出来不是实例化的值。因为静态变量不能被序列化。
Public Person(String name, int age, String addr){
This.name=name;
This.age=age;
This.addr=addr;
}
Public void toString(){
打印
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马