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