Что может вызвать такое поведение Java? - PullRequest
1 голос
/ 11 января 2010

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

Что может вызвать такое поведение? Я почти уверен, что у меня нет закрытых файлов.

РЕДАКТИРОВАТЬ: я прошел код более целенаправленным образом, и я нашел проблему. В какой-то момент файлы сжимаются, и это объясняет уменьшение размера. Я тупой :) Модератор может закрыть этот вопрос, если посчитает нужным.

Ответы [ 3 ]

3 голосов
/ 11 января 2010

Попробуйте добавить:

System.gc();
try { Thread.sleep(4000); } catch (Exception e) {}
System.gc();

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

2 голосов
/ 11 января 2010

Ваш код многопоточный? Вы пытаетесь прочитать что-то, что не дали другому потоку возможности завершить построение, что не проявляется, когда вы проходите через него?

1 голос
/ 11 января 2010

Вы вызываете какой-то метод "чтения", например, для чтения из файла, и предполагаете, что вы всегда получите обратно количество запрошенных вами байтов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...