-1

我有一个将数据写入文件的应用程序。我第一次运行它时,它运行良好并将 1000 个值写入文件。然后我使用此代码关闭应用程序

finish();
System.exit(0);

当我按下停止按钮时会发生这种情况。

当我停止后再次运行它时,比如几分钟后,它只会在同一时间范围内将几个值写入一个新文件。

这是我用来写入文件的代码:

public void write(String message) {

    try {
        if (out == null) {
            FileWriter datawriter = new FileWriter(file, true);
            out = new BufferedWriter(datawriter);
            //out.write("X Value, Y Value, Z Value \n");
        }
        if (file.exists()) {
            out.append(message);
            out.flush();    
        }

任何有关为什么会发生这种情况的见解将不胜感激。

谢谢

4

2 回答 2

0

就整理做out.close()。这可能是一个系统正在恶化。

于 2013-03-18T15:57:04.177 回答
0

不要打电话

System.exit(0);

阅读这篇文章以了解原因。

此外,您不需要调用flush(),而只是close()在完成后,在调用finish().

试试这个代码:

public void write(String message) {
    try {
        if (out == null) {
            FileWriter datawriter = new FileWriter(file, true);
            out = new BufferedWriter(datawriter);
        }
        out.append(message);
        out.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
于 2013-03-18T17:12:11.630 回答