应用对象序列化和对象反序列化向文件写入对象,并将对象读取出来输入到控制台上。任务要求: 1、创建Product类,并声明它的属性:id,name,categories,price 2、实现Serializable接口; 3、定义Product类构造方法; 4、在Test类里面,创建Product类的对象:iphone,ipad,macbook,iwatch 5、实例化对象输入流和对象输出流; 6、写入Product类的四个对象; 7、从文件里读取四个product类的四个对象。
时间: 2023-12-06 14:45:11 浏览: 126
java 中Spark中将对象序列化存储到hdfs
好的,以下是代码实现:
Product.java:
```java
import java.io.Serializable;
import java.util.List;
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private List<String> categories;
private double price;
public Product(int id, String name, List<String> categories, double price) {
this.id = id;
this.name = name;
this.categories = categories;
this.price = price;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public List<String> getCategories() {
return categories;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Product{" +
"id=" + id +
", name='" + name + '\'' +
", categories=" + categories +
", price=" + price +
'}';
}
}
```
Test.java:
```java
import java.io.*;
public class Test {
public static void main(String[] args) {
// 创建Product类的四个对象
Product iphone = new Product(1, "iPhone", List.of("手机", "电子产品"), 9999.99);
Product ipad = new Product(2, "iPad", List.of("平板电脑", "电子产品"), 5999.99);
Product macbook = new Product(3, "MacBook", List.of("笔记本电脑", "电子产品"), 12999.99);
Product iwatch = new Product(4, "iWatch", List.of("手表", "智能穿戴"), 3999.99);
// 实例化对象输入流和对象输出流
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
try {
// 写入Product类的四个对象
oos = new ObjectOutputStream(new FileOutputStream("products.dat"));
oos.writeObject(iphone);
oos.writeObject(ipad);
oos.writeObject(macbook);
oos.writeObject(iwatch);
System.out.println("写入对象成功!");
// 从文件里读取四个product类的四个对象
ois = new ObjectInputStream(new FileInputStream("products.dat"));
Product p1 = (Product) ois.readObject();
Product p2 = (Product) ois.readObject();
Product p3 = (Product) ois.readObject();
Product p4 = (Product) ois.readObject();
System.out.println("读取对象成功!");
// 输出到控制台
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(p4);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
if (oos != null) {
oos.close();
}
if (ois != null) {
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
阅读全文