JAVA 序列化

本文只是Java序列化测试代码,晚点会更新SQL编程的使用代码,以及知识点!!记得关注


package ch09;

import java.io.*;
public class TestBuffer {
public static void main(String[] args)throws Exception {
Person per[]= {new Person("张三",30),new Person("李四",31),new Person("王五",32)};
ser(per);


Object o[]=desr();
for (int i = 0; i < o.length; i++) {
Person p=(Person)o[i];
System.out.println(p);
}
}


private static void ser(Object obj[])throws Exception {
File f=new File("E:\\JAVA文件"+File.separator+"密钥.txt");
ObjectOutputStream oos=null;
OutputStream out=new FileOutputStream(f);
oos=new ObjectOutputStream(out);
oos.writeObject(obj);
oos.close();
}
private static Object[] desr() throws Exception{
File f=new File("E:\\JAVA文件"+File.separator+"密钥.txt");
ObjectInputStream ois=null;
InputStream input=new FileInputStream(f);
ois=new ObjectInputStream(input);
Object obj[]=(Object[])ois.readObject();
ois.close();
return obj;
}

}

package ch09;
import java.io.*;
public class Person implements Serializable{
private static final long serialVersionUID =1L;


private transient String name;
private int age;
public Person(String name,int age) {
this.name=name;
this.age=age;
}


public String tostring() {
return"姓名:"+this.name+";年龄"+this.age;
}

}



测试2

package demo1;


import java.io.Serializable;


/*
 * 学生对象实体类
 * 对象要能序列化,必须要实现 Serializable接口
 */
public class Student implements Serializable {


private static final long serialVersionUID = 1L;

private String name;
private int age;
private char sex;
//添加transient关键字,则该属性在序列化是不写入文件
//private transient String phone;
private String phone;

public Student(){

}

public Student(String name, int age, char sex, String phone) {
this.name = name;
this.age = age;
this.sex = sex;
this.phone = phone;
}

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 char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}

}


package demo1;


import java.io.*;
import java.util.*;


public class TestWriteList {


public static void main(String[] args) throws Exception {

//将一个学生对象的集合写入文件

//创建一个集合
ArrayList<Student> list = new ArrayList<Student>();

//往集合中添加学生对象
list.add(new Student("张三",18,'男',"13812345678"));
list.add(new Student("李四",20,'女',"13833333333"));
list.add(new Student("王五",19,'男',"13866666666"));
list.add(new Student("赵六",22,'男',"13888888888"));
list.add(new Student("田七",21,'女',"13855555555"));

//创建一个底层输出流
FileOutputStream fos = new FileOutputStream("E:\\二学期\\Java语言程序设计\\files\\list");
//根据底层流构建一个对象输出流(高层流)
ObjectOutputStream oos = new ObjectOutputStream(fos);

//将集合写入文件
oos.writeObject(list);

//释放资源
oos.close();
fos.close();

System.out.println("集合已写入文件!");


}

}


package demo1;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.ObjectInputStream;
import java.util.ArrayList;


public class TestReadList {


public static void main(String[] args) throws Exception {

//将一个集合从文件中读取出来

FileInputStream fis = new FileInputStream("E:\\二学期\\Java语言程序设计\\files\\list");

ObjectInputStream ois = new ObjectInputStream(fis);

Object obj = ois.readObject();

if(obj instanceof ArrayList){

ArrayList<Student> list = (ArrayList<Student>)obj;

System.out.println("姓名\t年龄\t性别\t电话");
System.out.println("-----------------------------------");
for(Student stu : list){
System.out.println(stu.getName()+"\t"+stu.getAge()+"\t"+stu.getSex()+"\t"+stu.getPhone());
}

}

ois.close();
fis.close();


}

}

package demo1;


import java.io.*;


public class TestObjectOutputStream {


public static void main(String[] args) throws IOException {

/********对象序列化(将对象写入文件)*********/

//创建一个学生对象
Student stu = new Student("张三",18,'男',"13812345678");

//创建一个底层输出流
FileOutputStream fos = new FileOutputStream("E:\\二学期\\Java语言程序设计\\files\\object.txt");
//根据底层流构建一个对象输出流(高层流)
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(stu);

oos.close();
fos.close();

System.out.println("对象序列化完毕!");
}

}


package demo1;


import java.io.*;


public class TestObjectInputStream {


public static void main(String[] args) throws Exception {

/********对象反序列化(将对象从文件中读取出来)*********/

FileInputStream fis = new FileInputStream("E:\\二学期\\Java语言程序设计\\files\\object.txt");

ObjectInputStream ois = new ObjectInputStream(fis);

Object obj = ois.readObject();

Student stu = (Student)obj;

System.out.println("姓名:"+stu.getName());
System.out.println("年龄:"+stu.getAge());
System.out.println("电话:"+stu.getPhone());

ois.close();
fis.close();

}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值