我能以人类可读的方式将对象数组保存在文件中吗



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

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

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

听起来你问的主要问题是"我能写。。。"一次处理整个数组"。

当然:

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(这是一些人类可读的序列化格式)。

最新更新