假设我有一个抽象类“车辆”和另外两个继承自名为“汽车”和“自行车”的车辆类的子类。
所以我可以随机创建一系列汽车和自行车对象:
Vehicle car = new Car();
Vehicle bike = new Bike();
并将它们全部添加到Arraylist:
Arraylist<Vehicle> vehicles = new Arraylist<>();
是否有可能将这些对象写入单个文本文件,并根据特定的对象类型(汽车、自行车)从文本文件读取回Arraylist,而无需为每种类型维护不同的文本文件
对
如果抽象类实现了可序列化接口,那么实际上也可以序列化子类。
因此,通过使vehicle类可序列化,您可以迭代数组列表,并使用ObjectOutputStream
和FileOutputStream
来序列化子对象。
参考:https://www.geeksforgeeks.org/object-serialization-inheritance-java/
如果您想在文件中存储对象,我建议您使用对象序列化。此链接提供了有关如何序列化和反序列化列表的有用详细信息
以下是序列化列表的方式:
ArrayList<Vehicle> vehicles= new ArrayList<>();
vehicles.add(new Vehicle());
vehicles.add(new Bike());
vehicles.add(new Car());
try
{
FileOutputStream fos = new FileOutputStream("vehiclesData");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(vehicles);
oos.close();
fos.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
要反序列化,请使用以下内容:
ArrayList<Vehicle> vehicles= new ArrayList<>();
try
{
FileInputStream fis = new FileInputStream("vehiclesData");
ObjectInputStream ois = new ObjectInputStream(fis);
vehicles= (ArrayList) ois.readObject();
ois.close();
fis.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
return;
}
catch (ClassNotFoundException c)
{
System.out.println("Class not found");
c.printStackTrace();
return;
}
//Verify list data
for (Vehicle vehicle : vehicles) {
System.out.println(vehicle);
}
确保所有的类都实现了可序列化的
接口
问题内容: 说我有以下numpy结构化数组: 我想 将其保存到文本文件中的单个空格或制表符分隔的行中 。如果数组都是相同的类型,我可以使用。但是,这似乎不喜欢混合数据类型/结构化数组,例如: 给出此错误: 任何人都可以推荐这样做的方法吗? 问题答案: 编辑 :无论出于什么原因,我似乎都无法单独回答这个问题,因此这是一个更清洁的版本,它不需要使用模块。记录下来,@ askewchan的答案还是更好!
我正在编写一个使用Kafka流的应用程序。它从主题A读取,进行一些转换,然后写入主题B。在转换期间,值按键分组,因此输出键、值类型不同于输入值类型。Kafka流使用特定类型的Serdes(例如String serdes序列化和反序列化字符串)进行序列化和反序列化,因此在数据转换后它将无法工作。如何在Streams API中定义不同的序列化器和反序列化器?
我是一个编程初学者,我需要一些帮助,试图从文本文件读取到包含不同类型对象的ArrayList。我已经创建了一个控制视频目录的程序,我目前已经硬编码到程序中的ArrayList中,但我想改变这一点,所以每次程序运行时,程序都从包含目录的文本文件中读取,并将其转换为ArrayList,而不是从已经在程序中的ArrayList中读取。我已经添加了一个函数,一旦程序退出,它就会将清单写入文本文件,但我似乎
我有一个这样的 txt 文件 163钱滴24 454快乐112 45 没有你什么都没有 56 第一个数字是歌曲的id,我想将其存储为整数,第二个数字是字符串!这不是一个词!第三个是整数,它是歌曲的点赞数。我想将它们存储在一个数组中,但当我使用scanner方法时,我会逐字存储它们,当歌曲有名字时 有什么方法可以读取 txt 文件,将第一个数字存储为 int,然后扫描整个字符串(歌曲名称),直到下一
我是C语言的新手,正在寻找关于以下问题的建议。我正试图创建一个程序,生成树的形状(是的,真正的树)。这些形状完全由树枝构成。为此,我开始编写一个名为Branch的类。主要的想法是。cpp I创建一个类Branch的实例,它本身将创建Branch的实例。这适用于迭代。 目前,该计划的结构如下: main.cpp: 树枝h: 树枝cpp: 现在,这个程序可以工作,但是我想通过将每个对象存储在一个向量中
在上一节中,我们使用Python和XlsxWriter模块创建了一个设置了简单格式的电子表格。 这次,我们继续扩展要写入的数据,在其中添加一些日期: expenses = ( ['Rent', '2013-01-13', 1000], ['Gas', '2013-01-14', 100], ['Food', '2013-01-16', 300], ['Gym'