Live2D

应⽤对象序列化和对象反序列化向⽂件写⼊对象,并将对象读取出来输⼊到控制台上(java小作业)

一、任务要求:

1、创建Product类,并声明它的属性:ID,name,categories,price

2、实现Serializable接⼝;

3、定义Product类构造⽅法;

4、在Test类⾥⾯,创建Product类的对象:iphone,ipad,macbook,iwatch

5、实例化对象输⼊流和对象输出流;

6、写⼊Product类的四个对象;

7、从⽂件⾥读取四个product类的四个对象。

二、实现代码

1.Product.java

import java.io.Serializable;

public class Product implements Serializable {
	private int ID;
	private String name;
	private String categories;
	private Double price;
	public Product() {
		
	}
	public Product(int iD, String name, String categories, Double price) {
		super();
		ID = iD;
		this.name = name;
		this.categories = categories;
		this.price = price;
	}

	public int getID() {
		return ID;
	}

	public void setID(int iD) {
		ID = iD;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCategories() {
		return categories;
	}

	public void setCategories(String categories) {
		this.categories = categories;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	@Override
	public String toString() {
		return "产品ID:" + ID + "\n产品名称:" + name + "\n产品属性:" + categories + "\n产品价格:" + price + "元";
	}

}

2.ProductTest.java

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class ProductTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Product iphone = new Product(123, "iphone", "telephone", 4888.0);
		Product ipad = new Product(234, "ipd", "computer", 5088.0);
		Product macbook = new Product(345, "macbook", "computer", 10688.0);
		Product iwatch = new Product(256, "iwatch", "watch", 4799.0);
		try {
			FileOutputStream fos = new FileOutputStream("product.txt");
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			FileInputStream fis = new FileInputStream("product.txt");
			ObjectInputStream ois = new ObjectInputStream(fis);
			oos.writeObject(iphone);
			oos.writeObject(ipad);
			oos.writeObject(macbook);
			oos.writeObject(iwatch);
			oos.flush();
			System.out.println("apple系列产品信息");
			
			//方式3输出产品信息
			//循环4次把对象从文件中读出来
			for(int i=0;i<4;i++) {
				Product pro = (Product) ois.readObject();
				System.out.println(pro);
				System.out.println();
			}
			
			//方式2输出产品信息
			// fis.available()指把文件的所有对象都找到,直到没有找到之后结束。
			//  while(fis.available()>0) {
//				System.out.println(fis.available());
//				Product pro = (Product) ois.readObject();
//				System.out.println(pro);
//				System.out.println();
//			}

			// 方式1输出产品信息
//			Product pro = (Product) ois.readObject();
//			Product pro1= (Product) ois.readObject();
//			Product pro2 = (Product) ois.readObject();
//			Product pro3 = (Product) ois.readObject();
//			System.out.println("apple系列产品信息");
//			System.out.println(pro);
//			System.out.println();
//			
//			System.out.println(pro1);
//			System.out.println();
//			
//			System.out.println(pro2);
//			System.out.println();
//			
//			System.out.println(pro3);
//			System.out.println();

			oos.close();
			fos.close();
			ois.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

	}

}

 

posted @ 2020-02-25 10:16  幽香飞狐  阅读(42)  评论(0)    收藏  举报
Live2D