java _io_对象流,能够保存基本数据类型和对象
transient:该数据不需要序列化,数据透明(输出显示null),private transient String name;
//写出后读取,读取的数徐与写出保持一致
public class n {public static void main(String[]args) throws IOException, ClassNotFoundException{
写入字节数组
//写出 序列化
ByteArrayOutputStream os=new ByteArrayOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(new BufferedOutputStream(os));
ha ff=new ha("hh",222);
oos.writeUTF("哈哈");oos.writeChar('q');oos.writeBoolean(false);oos.writeObject(ff);oos.flush();byte[] datas=os.toByteArray();oos.close();//读取 反序列化ObjectInputStream ois =new ObjectInputStream(new BufferedInputStream(new ByteArrayInputStream(datas)));String s=ois.readUTF();char ch=ois.readChar();boolean flag=ois.readBoolean(); Object str=ois.readObject(); //Object需要强制转换//还原(判断是哪个类,然后强制转换):if (str instanceof String ) //是String类就直接转换成字符串{ String s1=(String)str; System.out.println(s1);}if(str instanceof Data){ Date d=(Date)str; System.out.println(d);}if(str instanceof ha){ ha fr=(ha)str; System.out.println(fr.getName()+fr.getSalary());}ois.close();}//javabean,用于封装数据 class ha implements java.io.Serializable {private transient String name; //该数据不需要序列化,数据透明private double salary;public ha() {}public ha(String name,double salary){this.name=name;this.salary=salary;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}}
写入文件:
ObjectOutputStream oos=new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("D:/d/s"))); ha ff=new ha("hh",222); oos.writeUTF("what"); oos.writeObject(ff); oos.flush(); oos.close(); //使用时,反序列化对象 ObjectInputStream ois=new ObjectInputStream(new BufferedInputStream(new FileInputStream("D:/d/s"))); String s=ois.readUTF(); Object it=ois.readObject(); if(it instanceof ha) { ha q=(ha)it; System.out.println(q.getName()+q.getSalary()); } ois.close(); //javabean 用于封装数据class ha implements java.io.Serializable {private transient String name; //该数据不需要序列化,数据透明private double salary;public ha(){}public ha(String name,double salary){ this.name=name; this.salary=salary;}public String getName() { return name;}public void setName(String name) { this.name = name;}public double getSalary() { return salary;}public void setSalary(double salary) { this.salary = salary;}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。