600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java.io对象读写_java _io_对象流 能够保存基本数据类型和对象

java.io对象读写_java _io_对象流 能够保存基本数据类型和对象

时间:2021-07-10 02:34:24

相关推荐

java.io对象读写_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;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。