将ArrayList的内容写入文件时出现问题

时间:2019-06-24 13:42:29

标签: java

因此,我为德语班的词汇训练器编写了一些代码,并希望将ArrayLists的内容写入文件。但是,保存时它仅将3个ArrayList中的第一个写入文件。有谁知道这是什么原因,或者更好的是,如何解决它?谢谢您的帮助!

我已经重置了所有ArrayList并重新实现了它应该写入的文件,但是没有任何帮助。

这些全都是代码序列,而不是整个程序。它超过400行,所以我不想粘贴整个东西。直到我打开写入的文件,代码才能完美运行。

static ArrayList<String> vokabel = new ArrayList<String>();
static ArrayList<String> uebersetzung = new ArrayList<String>();
static ArrayList<Integer> kasten = new ArrayList<Integer>(); 

static void beenden() {
  for(int m = 0; m < groesse; m++) {
    String str = vokabel.get(m).toString();
    textWriter.write(str);
    textWriter.write(" ");
  }
  textWriter.close();
  textWriter.println();
  for(int n = 0; n < groesse; n++) {
    String str = uebersetzung.get(n).toString();
    textWriter.write(str);
    textWriter.write(" ");
  }
  textWriter.close();
  textWriter.println();
  for(int o = 0; o < groesse; o++) {
    String str = kasten.get(o).toString();
    textWriter.write(str);
    textWriter.write(" ");
  }
  textWriter.close();
  textWriter.println();

  System.exit(0);

}

我希望它可以将所有3个ArrayList的内容写入文件中,尽管直到现在它都没有起作用。 这是在输入3个单词及其翻译和相应的案例编号后在文件中最终显示的内容。只有单词本身才能将其放入文件中:

内恩·哈罗(

3 个答案:

答案 0 :(得分:1)

之所以只将第一个ArrayList写入文件是因为您是在写入TextWriter之后立即关闭TextWriter,而没有关闭textWriter.close(); 写东西)。只需删除所有

System.exit(0)

行,然后在Smartforms前面放一个 right ,它应该可以正常工作。

答案 1 :(得分:0)

您将所有三个列表一个接一个地写。 AND:在您之间关闭作家!因此,您很幸运没有得到IOException。

我想您希望将这3个列表的条目(vokabel + uebersetzung + kasten)一起使用。因此,我建议您创建一个包含3个字段的类的信息。给该类一个明智的toString(),然后一次只写一行对象即可。

啊和顺便说一句:永远不要调用System.exit!它会使您的程序在更大的范围内无法使用,并阻止适当的资源清理。

答案 2 :(得分:-1)

使用Flush。当文本长度超过缓冲区大小时,它将不会写入。

System.IO.TextWriter writeFile = new StreamWriter("c:\\textwriter.txt");
writeFile.WriteLine("csharp.net-informations.com");
writeFile.Flush();
writeFile.Close();