编写一个程序实现将水果对象放入集合中,并将集合写入文件中,再将文件中的对象读取出来。将读出来的对象显示在控制台
时间: 2024-02-15 15:01:37 浏览: 133
水果识别matlab程序,有界面
下面是一个简单的示例程序,实现了将水果对象放入集合中,将集合写入文件中,再将文件中的对象读取出来,并在控制台中显示:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class FruitSerialization {
public static void main(String[] args) {
List<Fruit> fruits = new ArrayList<>();
fruits.add(new Fruit("apple", "red", 1.0));
fruits.add(new Fruit("banana", "yellow", 0.5));
fruits.add(new Fruit("orange", "orange", 0.8));
// 将集合写入文件
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("fruits.dat"))) {
out.writeObject(fruits);
} catch (IOException e) {
e.printStackTrace();
}
// 从文件中读取对象
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("fruits.dat"))) {
List<Fruit> readFruits = (List<Fruit>) in.readObject();
for (Fruit fruit : readFruits) {
System.out.println(fruit);
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class Fruit implements Serializable {
private String name;
private String color;
private double weight;
public Fruit(String name, String color, double weight) {
this.name = name;
this.color = color;
this.weight = weight;
}
@Override
public String toString() {
return "Fruit{" +
"name='" + name + '\'' +
", color='" + color + '\'' +
", weight=" + weight +
'}';
}
}
```
在这个程序中,我们定义了一个Fruit类,实现了Serializable接口,这样就可以将Fruit对象进行序列化和反序列化。在主函数中,我们创建了一个List<Fruit>类型的集合,将三个Fruit对象添加到集合中,然后将集合写入文件中。接着,我们从文件中读取对象,将读取的Fruit对象在控制台中显示。注意,我们在读取对象时,需要进行类型转换为List<Fruit>类型。
阅读全文