在java学习者培训上随机删除文本文件

时间:2011-03-22 01:28:13

标签: java windows jvm

所以我正在开发一个项目,我们用Java创建了一个受监督的学习者。它使用一个重量.txt文件,大约15行(每行一个数字),每次运行打开和关闭两次。在读/写之前和之后直接打开和关闭。

由于代码的结构方式(不是我们的决定),我无法在循环中运行我们的训练代码。所以我设置了一个批处理脚本,它简单地迭代一个循环,在每次迭代运行我们的代码(然后更新我们的文件),等待几秒钟,然后重复。

问题是每隔几百次左右运行,我们文件的所有内容都会被删除。该文件仍然存在,但所有内容都是清晰的。有时它会发生在第100次运行,有时会发生在200日,有时发生在第3次。

假设这不是我们的代码问题,可能导致这种情况的原因是什么?还是可以解决?

规格:
Windows 7
使'java'调用从.bat批处理文件执行.class文件 修改同一目录中的.txt文件

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  

事实上它偶尔发生并且没有抱怨地完成,这让我觉得它不是java。

我认为您并未排除代码作为问题的根源。作为一个反例,这个Java程序“零星地”失败,并且“三个一次”完成“没有抱怨”。这是吞噬异常的本质。我在这里考虑的可能性:它可能是你的代码。

public class SilentSpring {
    /** Expected output: args[0] 0 */
    public static void main(String[] args) {
        try {
            long i = System.currentTimeMillis() % 3;
            System.out.print(args[0] + " ");
            System.out.println(0 / i);
        } catch (Exception e) {}
    }
}

Shell脚本:

for ((i = 1; i <= 32; i++)); do java -cp build/classes SilentSpring $i ; done

控制台:

1 0
2 3 0
4 5 6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 14 15 0
16 0
17 18 0
19 0
20 0
21 22 0
23 24 0
25 26 0
27 0
28 0
29 0
30 31 0
32 0