Случайное удаление текстового файла при обучении на Java - PullRequest
1 голос
/ 22 марта 2011

Итак, я работаю над проектом, в котором мы создали контролируемый ученик на Java.Он использует весовой файл .txt с примерно 15 строками (по одному числу в строке), который открывается и закрывается дважды за цикл.Открытие и закрытие происходит непосредственно до и сразу после чтения / записи.

Из-за того, как код структурирован (не наше решение), я не могу запустить наш обучающий код в цикле.Поэтому я установил пакетный скрипт, который просто повторяет цикл, во время каждой итерации запускает наш код (и, таким образом, обновляет наш файл), ждет несколько секунд, а затем повторяет.

Проблема в том, что каждые несколько сотен запусков или около того, все содержимое нашего файла удаляется.Файл все еще существует, но все содержимое ясно.Иногда это происходит на 100-м прогоне, иногда на 200-м, иногда на 3-м.

Если проблема заключается не в нашем коде, что может вызвать это?Или возможное исправление?

Характеристики:
Windows 7
Выполнение вызовов java для выполнения файла .class из пакетного файла .bat
изменяет файл .txt в том же каталоге

Любая помощь очень ценится.

1 Ответ

1 голос
/ 22 марта 2011

Тот факт, что это происходит так время от времени и заканчивается без жалоб, заставляет меня думать, что это не 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) {}
    }
}

Сценарий оболочки:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...