У меня есть программа на Java, работающая под Windows XP. Он читает файл и закрывает файл, или, по крайней мере, это то, что он должен делать.
Иногда файл остается заблокированным, и я не могу записать в него («Я» означает меня как пользователя, пытающегося выполнить copy file2.out file1.out
из командной строки, где file1.out
- это файл, который читает моя Java-программа), пока Я закрываю свою программу на Java. (Windows жалуется, «не может записать в файл с сопоставленным пользовательским процессом» или что-то в этом роде)
Есть предложения по отладке? Я в тупике.
уточнение : Проблема, с которой я сталкиваюсь, заключается не в том, чтобы выяснить является ли файл открытым или каким процессом он остается открытым. Проблема состоит в том, чтобы выяснить, где в моей Java-программе я неправильно закрываю файл, так как это большая программа, и несколько классов имеют доступ к InputStream
файла во время открытия InputStream
.
Я могу сузить это до нескольких классов, но я не уверен, где искать дальше.