gpt4 book ai didi

java - 基于原始数据创建实例

转载 作者:行者123 更新时间:2023-11-29 05:05:45 25 4
gpt4 key购买 nike

dat 文件包含以下格式的信息,这些信息是使用 writeUTF 编写的:Fruit, Colour, Taste, Yes/No ,最后一个是 Yes 或 No,但是,它是一个字符串。

现在定义一个类如下

public class Food {
private String name;
private String colour;
private String taste;
private boolean availability;


public Food(String name, String colour, String taste, boolean availability) {
this.name = name;
this.colour = colour;
this.taste = taste;
this.availability = availability;
}


}

当我读取 dat 文件时:

FileInputStream fis = new FileInputStream("food.dat");
DataInputStream dis = new DataInputStream(fis);

我能否以某种方式立即将一行文本转换为 Food 的实例?棘手的一点是 String -> boolean

最初我想将文件的每一行添加到一个ArrayList中,然后从中拆分每一行,并将其添加到一个String massive中并使用if 逻辑来处理 Yes/No 部分,但是如果这些信息有数千行怎么办?这种方法并没有太大的吸引力。

遗憾的是,如果这不是使用 ObjectOutputStream 编写的(某种分配,我没有创建规则)。有没有办法从文件中读取一行并根据信息创建一个实例?

最佳答案

为什么要将所有内容都添加到列表中?通过 readUTF 读取每一行,以逗号分隔,然后有一个方法从 4 个组件生成一个 Food 对象。然后将您的 Food 对象添加到您想要的任何容器中。

public Food (String[] data){
if (data==null || data.length!=4){
// error handling
}
this.name=data[0];
...
this.availability="Yes".equals(data[3])
}

关于java - 基于原始数据创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com