我正在尝试编写的程序有一些问题。基本上我需要做的是获取ArrayList
我拥有的信息并将信息导出到文本文件。我尝试了谷歌的几种不同的解决方案,但没有一个给我任何成功。
基本上我有两个ArrayList
,两个名单,一个毕业生和一个本科生。我只需要获取与这些相关的信息ArrayList
并将它们放入一个文本文件中。
稍后我需要将.txt
文件执行相反的操作(导入)到ArrayList
中,但我稍后会弄清楚。
有什么建议么?
我正在尝试编写的程序有一些问题。基本上我需要做的是获取ArrayList
我拥有的信息并将信息导出到文本文件。我尝试了谷歌的几种不同的解决方案,但没有一个给我任何成功。
基本上我有两个ArrayList
,两个名单,一个毕业生和一个本科生。我只需要获取与这些相关的信息ArrayList
并将它们放入一个文本文件中。
稍后我需要将.txt
文件执行相反的操作(导入)到ArrayList
中,但我稍后会弄清楚。
有什么建议么?
这是使用Apache commons-io 库的解决方案:
//Put all data into one big list, prepended with size of first list
List<String> allData = new ArrayList<String>(1+grads.size()+undergrads.size());
allData.add(String.valueOf(grads.size());
allData.addAll(grads);
allData.addAll(undergrads);
FileUtils.writeLines(new File("list.txt"), allData);
读回数据:
List<String> allData = FileUtils.readLines(new File("list.txt"));
int gradsSize = Integer.parseInt(allData.get(0));
List<String> grads = allData.subList(1, gradsSize+1);
List<String> undergrads = allData.subList(1+gradsSize, allData.size());
如果您需要以特定格式写入数据,您可以使用 aPrintWriter
以您希望的任何方式将数据写入文件。这样做的问题是,您必须找出一种方法,然后重新读取文本文件并填充数据。
另一方面,您可以使用XStream (此处为教程)将文件编写为 XML。这将为您提供人类可读的文本文件(如上),但是,在填充数据时重新读取文本文件会容易得多。
最后,您可以使用ObjectOutputStream写入数据并使用ObjectInputStream重新读取数据。但是请注意,此方法不会产生人类可读的文本文件。此外,您的类将需要实现Serializable接口。