我可以用人类可读的方式在文件中保存一组对象吗?

时间:2012-12-15 16:14:28

标签: java arrays file

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

2 个答案:

答案 0 :(得分:0)

你用人类可读的方式究竟是什么意思?如果您觉得json数据足够好,可以序列化数组并将其打印到文件中。

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

答案 1 :(得分: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函数。

另一种解决方案是使用List而不是数组。 List是一个对象,具有漂亮的toString函数。

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

现在,如果您将其写入文件并想要重新读取(就像您提到的那样),您将进入解析世界。如果您打算将对象写入文件并将其重新读入,那么您一定要查看现有工具,以将对象序列化和反序列化为XML或JSON(这些都是人类可读的序列化格式)。