-1

我想创建一个对象数组,每个对象由一些字符串组成,我想以人类可读的方式将这些对象保存在一个文件中,是否有一种方法可以一次写入和读取整个数组,或者我必须保存它们逐个元素??

4

2 回答 2

0

人类可读的方式到底是什么意思?如果您觉得 json 数据对您来说足够好,请序列化数组并将其打印到文件中。

理想情况下,逐个元素会更好,因为每个对象都是独立的,因为我看不到为所有这些对象应用通用逻辑的方法。

于 2012-12-15T17:14:35.613 回答
0

听起来您要问的主要问题是“我可以一次写...整个数组吗”。

当然:

String[] things = { "ABC", "XYZ" };
System.out.println(Arrays.toString(things));

我相信你在问这个问题,因为当你尝试这个时:

System.out.println(things)

你会得到类似的东西:

[Ljava.lang.String;@35a8767

您在这里看到的是数组引用本身。你想要的是一个像上面这样漂亮的印刷版。这些漂亮的输出来自该函数的自定义实现,该toString函数存在于 Java 中的所有对象上,来自Object对象本身。由于数组是“原始”而不是对象,因此它没有toString功能。因此,该对象为此目的Arrays提供了一个实用静态函数。toString

另一种解决方案是使用 aList而不是数组。List是一个对象并且有一个漂亮的toString功能。

List<String> thingList = Arrays.asList(things);
System.out.println(thingList);

现在,如果你把它写到一个文件中并想把它读回来(就像你提到的那样),你将进入解析的世界。如果您打算将对象写入文件并将其读回,则绝对应该研究现有的工具来将对象序列化和反序列化为 XML 或 JSON(它们在某种程度上是人类可读的序列化格式)。

于 2012-12-15T17:18:52.087 回答