作业 5-3

来源:5-3 自由编程

jia_蛙

2019-09-12 22:00:10

public class AppleProduct implements Serializable{
	private String ProductId;//产品id
	private String ProductName;//产品名称
	private String ProductNature;//产品属性
	private Double ProductPrice;//产品价格
	
	public AppleProduct(String productId, String productName, String productNature, Double productPrice) {
		super();
		ProductId = productId;
		ProductName = productName;
		ProductNature = productNature;
		ProductPrice = productPrice;
	}

	public String getProductId() {
		return ProductId;
	}

	public void setProductId(String productId) {
		ProductId = productId;
	}

	public String getProductName() {
		return ProductName;
	}

	public void setProductName(String productName) {
		ProductName = productName;
	}

	public String getProductNature() {
		return ProductNature;
	}

	public void setProductNature(String productNature) {
		ProductNature = productNature;
	}

	public Double getProductPrice() {
		return ProductPrice;
	}

	public void setProductPrice(Double productPrice) {
		ProductPrice = productPrice;
	}
	
	@Override
	public String toString() {
		return "apple系列产品信息:\n" + "产品ID:" +  ProductId + "\n产品名称:" +
				ProductName +"\n产品属性:" + ProductNature + "\n产品价格:" +  
				ProductPrice + "元";
	}
}
public class AppleProductTest {
	public static void main(String[] args) {
		try {
			//创建Apple对象
			AppleProduct apple1 = new AppleProduct("123","iphone","telephone",4888.0);
			AppleProduct apple2 = new AppleProduct("234","ipad","computer",5088.0);
			AppleProduct apple3 = new AppleProduct("345","macbook","computer",10688.0);
			AppleProduct apple4 = new AppleProduct("456","iwatch","watch",4799.0);
			//创建FileoutputStream对象.并指定对象要写入的文件
			FileOutputStream fos = new FileOutputStream("Apple.txt");
			//创建对象输出流 将FileOutputStream 对象作为参数 写入文件中
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			//创建FileInputStream对象 执行要读取对象所在的文件
			FileInputStream fis = new FileInputStream("Apple.txt");
			//创建对象输入流 将FileInputStream对象作为参数 输出出来
			ObjectInputStream ois = new ObjectInputStream(fis);
			
			//序列化: 将Apple对象转换为字节序列存储在文件中
			oos.writeObject(apple1);
			oos.writeObject(apple2);
			oos.writeObject(apple3);
			oos.writeObject(apple4);
			oos.flush();
			oos.close();
			fos.close();
			
			//反序列化:将字节序列恢复为Java对象 
			//返回的对象是Object类型 这里我们需要强转,
			//因为Apple对象已经toString 可以直接输出
			AppleProduct a1 = (AppleProduct)ois.readObject();
			AppleProduct a2 = (AppleProduct)ois.readObject();
			AppleProduct a3 = (AppleProduct)ois.readObject();
			AppleProduct a4 = (AppleProduct)ois.readObject();
			System.out.println(a1 + "\n");
			System.out.println(a2 + "\n");
			System.out.println(a3 + "\n");
			System.out.println(a4 + "\n");
		    fos.close();
		    oos.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}
老师你看一下,名字是我自己取的,当时每看完下面的要求就做,  改起来有点麻烦 就没改了 ,您看一下,
除了命名,其他有没有需要改进的


写回答

1回答

好帮手慕小班

2019-09-14

同学你好,复制运行贴出代码,运效果没有问题,除了命名规范的问题,代码完成没有问题,很棒呐,继续加油~

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

0 学习 · 11489 问题

查看课程