所以我正在开发一个项目,我们用Java创建了一个受监督的学习者。它使用一个重量.txt文件,大约15行(每行一个数字),每次运行打开和关闭两次。在读/写之前和之后直接打开和关闭。
由于代码的结构方式(不是我们的决定),我无法在循环中运行我们的训练代码。所以我设置了一个批处理脚本,它简单地迭代一个循环,在每次迭代运行我们的代码(然后更新我们的文件),等待几秒钟,然后重复。
问题是每隔几百次左右运行,我们文件的所有内容都会被删除。该文件仍然存在,但所有内容都是清晰的。有时它会发生在第100次运行,有时会发生在200日,有时发生在第3次。
假设这不是我们的代码问题,可能导致这种情况的原因是什么?还是可以解决?
规格:
Windows 7
使'java'调用从.bat批处理文件执行.class文件
修改同一目录中的.txt文件
非常感谢任何帮助。
答案 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