因此,我为德语班的词汇训练器编写了一些代码,并希望将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个单词及其翻译和相应的案例编号后在文件中最终显示的内容。只有单词本身才能将其放入文件中:
内恩·哈罗(
)答案 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();