// 创建个ObjectOutputStream输出流
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.txt"));
// 将一个Person对象输出到输出流中 oos.writeObject(per);
public class NbaPlayer implements java.io.Serializable
{
private String name;
private int number;
// 注意此处没有提供无参数的构造器!
public NbaPlayer(String name, int number)
{
System.out.println("有参数的构造器");
this.name = name;
this.number = number;
}
// name的setter和getter方法
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
// number的setter和getter方法
public void setNumber(int number)
{
this.number = number;
}
public int getNumber()
{
return this.number;
}
}
import java.io.*;
public class WriteObject
{
public static void main(String[] args)
{
try(
// 创建一个ObjectOutputStream输出流
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("object.txt")))
{
NbaPlayer player = new NbaPlayer("维斯布鲁克", 0);
// 将player对象写入输出流
oos.writeObject(player);
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
// 创建个ObjectInputStream输出流
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.txt"));
// 从输入流中读取一个Java对象,并将其强制类型转换为Person类 Person p = (Person)ois.readObject();
import java.io.*;
public class ReadObject
{
public static void main(String[] args)
{
try(
// 创建一个ObjectInputStream输入流
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream("object.txt")))
{
// 从输入流中读取一个Java对象,并将其强制类型转换为NbaPlayer类
NbaPlayer player = (NbaPlayer)ois.readObject();
System.out.println("名字为:" + player.getName()
+ "n号码为:" + player.getNumber());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
public class AllStar implements java.io.Serializable
{
private String name;
private NbaPlayer player;
public AllStar(String name, NbaPlayer player)
{
this.name = name;
this.player = player;
}
// 此处省略了name和player的setter和getter方法
// name的setter和getter方法
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
// player的setter和getter方法
public NbaPlayer getPlayer()
{
return player;
}
public void setPlayer(NbaPlayer player)
{
this.player = player;
}
}
import java.io.*;
public class WriteAllStar
{
public static void main(String[] args)
{
try(
// 创建一个ObjectOutputStream输出流
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("allStar.txt")))
{
NbaPlayer player = new NbaPlayer("詹姆斯哈登", 13);
AllStar allStar1 = new AllStar("西部全明星", player);
AllStar allStar2 = new AllStar("首发后卫", player);
// 依次将四个对象写入输出流
oos.writeObject(allStar1);
oos.writeObject(allStar2);
oos.writeObject(player);
oos.writeObject(allStar2);
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
import java.io.*;
public class ReadAllStar
{
public static void main(String[] args)
{
try(
// 创建一个ObjectInputStream输出流
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream("allStar.txt")))
{
// 依次读取ObjectInputStream输入流中的四个对象
AllStar star1 = (AllStar)ois.readObject();
AllStar star2 = (AllStar)ois.readObject();
NbaPlayer player = (NbaPlayer)ois.readObject();
AllStar star3 = (AllStar)ois.readObject();
// 输出true
System.out.println("star1的player引用和player是否相同:"
+ (star1.getPlayer() == player));
// 输出true
System.out.println("star2的player引用和player是否相同:"
+ (star2.getPlayer() == player));
// 输出true
System.out.println("star2和star3是否是同一个对象:"
+ (star2 == star3));
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
import java.io.*;
public class SerializeMutable
{
public static void main(String[] args)
{
try(
// 创建一个ObjectOutputStream输入流
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("mutable.txt"));
// 创建一个ObjectInputStream输入流
ObjectInputStream ois = new ObjectInputStream(
new FileInputStream("mutable.txt")))
{
NbaPlayer player = new NbaPlayer("斯蒂芬库里", 30);
// 系统会player对象转换字节序列并输出
oos.writeObject(player);
// 改变per对象的name实例变量
player.setName("塞斯库里");
// 系统只是输出序列化编号,所以改变后的name不会被序列化
oos.writeObject(player);
NbaPlayer player1 = (NbaPlayer)ois.readObject(); //①
NbaPlayer player2 = (NbaPlayer)ois.readObject(); //②
// 下面输出true,即反序列化后player1等于player2
System.out.println(player1 == player2);
// 下面依然看到输出"斯蒂芬库里",即改变后的实例变量没有被序列化
System.out.println(player2.getName());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有