A 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
,然后从,
分割每行并将其加入到庞大的一个字符串,并使用if
逻辑来处理Yes/No
一部分,但如果也有数千行此信息?这种方法不会吸引太多。
条件是这不使用ObjectOutputStream
,可悲的是书面(某种类型的任务,我没有创建的规则)。有没有办法从文件中读取一行并根据这些信息创建一个实例?
可获得性参数是一个布尔值。这不会产生问题吗? –
你创建了第二个构造函数:你有一个有4个参数的构造函数,你保存它,然后添加一个我给你创建的文本行。 –
我明白了,但是如果我使用原始构造函数创建了一个实例,然后又想将它''DataOutputStream''放入已存在的文件中,该怎么办?然后,我是否定义了一种方法,在写入之前将布尔值更改为文本? –