29.Serializable
发表日期:2022-08-05 16:41:10 | 来源: | | 浏览(1016) 分类:JAVA基础
Pet
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
public class Pet implements Externalizable{
private static final long serialVersionUID = 1L;
private String name ;
private int age ;
private String sex ;
public Pet(){}
public Pet(String name , int age , String sex){
setName(name);
setAge(age);
setSex(sex);
}
public String toString() {
return "姓名:"+name+" 年龄:"+age+" 性别:"+sex;
}
@Override
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
// TODO Auto-generated method stub
setName((String) in.readObject());
setAge(in.readInt());
//setSex((String) in.readObject()); Sex就不会被保存
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
// TODO Auto-generated method stub
out.writeObject(getName());
out.writeInt(getAge());
//out.writeObject(getSex());
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
}Person
import java.io.Serializable;
public class Person implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name ;
private int age ;
private transient String sex ;//transient 声明的变量不会被序列号
public Person(String name, int age , String sex) {
// TODO Auto-generated constructor stub
setName(name);
setAge(age);
setSex(sex);
}
public String toString() {
return "姓名:"+name+" 年龄:"+age+" 性别:"+sex;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
}ObjectOutputStreamDemo
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
public class ObjectOutputStreamDemo {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
// TODO Auto-generated method stub
File file = new File("D:" + File.separator + "javademo.txt");
OutputStream out = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(new Person("张三", 22, "男"));//性别不会被保存 transient 声明的变量不会被序列号
InputStream in = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(in);
Person person = (Person) ois.readObject();
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person);
}
}ObjectOutputStreamDemo2
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
public class ObjectOutputStreamDemo2 {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws IOException, ClassNotFoundException {
// TODO Auto-generated method stub
File file = new File("D:"+File.separator+"javademo.txt");
OutputStream out = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(out );
oos.writeObject(new Pet("小白",3,"公"));//性别不会被保存 没有配置writeExternal / readExternal
InputStream in = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(in);
Pet pet = (Pet) ois.readObject();
System.out.println(pet.getName());
System.out.println(pet.getAge());
System.out.println(pet);
}
}- JAVA(0)
- JAVA基础(30)
- 1.JAVA开发环境配置(0)
- 2.java数据类型(0)
- 3.数组(0)
- 4.Date(0)
- 5.String 和 StringBuffer类常用方法(0)
- 6.Math类(0)
- 7.Cloneable(0)
- 8.File 文件(0)
- 9.FileReader和FileWriter(0)
- 10.RandomAccessFile(0)
- 11.FileInputStream和FileOutputStream(0)
- 12.InputStreamReader和OutputStreamWriter(0)
- 13.BufferedReader(0)
- 14.Scanner(0)
- 15.DataOutputStream(0)
- 16.Thead 多线程(0)
- 17.TimerTask(0)
- 18.zip(0)
- 19.Charset(0)
- 20.List(0)
- 21.Map(0)
- 22.Properties(0)
- 23.Enumeration(0)
- 24.Collection(0)
- 25.JDBC(0)
- 26.Iterator(0)
- 27.Abstract(0)
- 28.Interface(0)
- 29.Serializable(0)
- 30.Camparable(0)
- JSP基础(50)
宁公网安备 64010402001209号