我的程序存在一些问题,我正在尝试写。基本上我需要做的是获取我拥有的ArrayList
并将信息导出到文本文件。我尝试了几种不同的Google解决方案,但都没有给我任何成功。
基本上我有两个ArrayList
,两个名单,一个毕业生和一个本科生。我只需要获取与这些ArrayList
相关联的信息,并将它们放入一个文本文件中。
我稍后需要将.txt
文件反向(导入)到ArrayList
,但我可以稍后解决。
有什么建议吗?
答案 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());