获取ArrayList并将其放入文本文件中

时间:2012-05-07 05:08:13

标签: java serialization arraylist text-files

我的程序存在一些问题,我正在尝试写。基本上我需要做的是获取我拥有的ArrayList并将信息导出到文本文件。我尝试了几种不同的Google解决方案,但都没有给我任何成功。

基本上我有两个ArrayList,两个名单,一个毕业生和一个本科生。我只需要获取与这些ArrayList相关联的信息,并将它们放入一个文本文件中。

我稍后需要将.txt文件反向(导入)到ArrayList,但我可以稍后解决。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果您需要以特定格式编写数据,可以使用PrintWriter以您希望的任何方式将数据写入文件。这样做的问题是,您必须找出一种方法,然后重新读取文本文件并填充数据。

另一方面,您可以使用XStream(教程here)将文件编写为XML。这将为您提供一个人类可读的文本文件(如上所述),但是,在填充数据时重新读取文本文件会更容易。

最后,您可以使用ObjectOutputStream来编写数据,然后使用ObjectInputStream重新读取数据。但请注意,此方法不会生成人类可读的文本文件。此外,您的类需要实现Serializable接口。

答案 1 :(得分:0)

以下是使用Apache commons-io library的解决方案:

//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());