Java 按日期保存对象

标签 java exception object file-io io

我试图将对象保存到具有以下类的文件中,但它给了我 java.io.NotSerializedException。

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Calendar;

class Saver {

  Calendar cal = Calendar.getInstance();

  public void save(ArrayList<Product> products) {
    for (int i = 0; i < products.size(); i++) {
      try { 
        FileOutputStream saveFile = new FileOutputStream(
        "/" + products.get(i) + ".product"
        );

        ObjectOutputStream oos = new ObjectOutputStream(saveFile);
        oos.writeObject(products.get(i));
      } catch(Exception ex) {
        System.out.println(ex); 
      }
    }
  }

}

而 Product 类看起来像这样:

class Product {

  private String title;
  private int id;
  private double price;

  public Product(String title, int id, double price) {
    this.title = title;
    this.id = id;
    this.price = price;
  }

  public String getTitle() {
    return title;
  }

  public int getId() {
    return id;
  } 

  public double getPrice() {
    return price;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public void setId(int id) {
    this.id = id;
  }

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

}

我做错了什么以及如何将对象存储在文件中? 提前致谢!

最佳答案

您必须通过实现 Serializable 来序列化您的 Product 类接口(interface)是您要保存其状态的类的标记接口(interface)。

class Product implements Serializable {

tutorial Link for Object Serialization in java

关于Java 按日期保存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030062/

相关文章:

java - 为什么我不能在 split() 函数中使用 "."作为分隔符?

c# - 如何知道 File.Copy 成功了?

java - Hibernate 5 PropertyAccessException : Error accessing field by reflection for persistent property

javascript - 为什么 typeof 函数返回 "function"?

JavaScript 映射为某些元素返回未定义

java - Hibernate 忽略扩展类的@Table(name = "...") - 创建的表名都是小写的

java - 如何将 POJO 类用于 CXF 的其余 WS

java - 如何在java中将二维数组的子数组引用为一维数组

java - CountDownLatch 在计数到零时不停止

javascript - Js中如何按对象过滤对象