IO包中的其他对象
来源:互联网 发布:炼数成金 黄志洪 知乎 编辑:程序博客网 时间:2024/04/30 16:09
2. 实现对象序列化。Employ类,属性包括name、age和dept,方法有构造方法、getter和setter方法以及showInfo方法使用ObjectOutputStream对象的writeOjbect()将员工对象存入指定文件。该方法将内存中员工对象的状态信息(姓名、年龄和部门)以有序二进制流的形式输出到目标文件中。--对象序列化对象序列化的主要任务:写出对象的状态信息,并遍历该对象对其他对象的引用,递归的序列化所有被引用到的其他对象,从而建立完整的序列化流。使用ObjectInputStream对象的readObject()将文件中的员工信息读取出来。--反序列化。该方法反序列化输入流中的下一个对象,遍历该对象中所有对其他对象的引用,并递归的反序列化这些引用对象。
3. 并不是任何引用类型的对象都可以被序列化,只有实现了java.io.Serializable接口的类的对象才可以。--出于安全性考虑,因为一些封装敏感信息或时效性强的信息的类不建议支持序列化,以避免出现泄密或信息失效问题。Serializable接口中实际上没有定义任何属性和方法,它只是起到标记性作用(标记接口)。在Java的语言规范中规定,Serializable接口的实现类均应提供无参的构造方法,以供可能的反序列化操作、系统重建对象时自动调用。类中的静态成员不会被序列化。对应非静态的成员如果也不想被序列化,可以通过transient关键字修饰。
4. 例题:
package com.hbsi.io;
import java.io.*;
public class Employee implements Serializable {//标志性接口
/**
*
*/
private static final long serialVersionUID =1L;
private String name;
private transient int age;//加transient修饰的非静态的成员也是不被序列化
private String dept;
private static int count=100;//静态成员不会被序列化
public static int getCount() {
return count;
}
public static void setCount(int count) {
Employee.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public Employee(String name, int age, String dept) {
super();
this.name = name;
this.age = age;
this.dept = dept;
}
public Employee() {
super();
}
@Override
public String toString() {
return "员工信息为:[age=" + age + ", dept=" + dept + ", name=" + name
+ "]";
}
}
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- IO包中的其他对象
- (5)IO包中的其他对象
- IO包中的其他对象、编码
- IO包中的其他流对象
- 2011.9技术博客IO包中的其他对象
- JAVA随笔——IO包中的其他对象
- IO包中的其他类
- IO包中的其他类
- 创北机房OracleDBConsole服务无法启动解决办法
- 1816
- 计算机操作系统之三:进程与线程的描述与控制
- 未解决
- 生成随机数
- IO包中的其他对象
- window.parent与window.opener的区别
- 稀里糊涂的准备开始了……
- 在Myeclipse里创建oracle连接时,出现:The Network Adapter could not establish the connection 错误
- ECshop如何安装补丁
- FastReport.NET使用示例
- sql存储过程版Split(字符串截取)
- 冒泡法 复习
- silverlight乐动魔方 实战二