0

JFileChooserを使用していますが、正常に動作しています。

File a = new File(strSavepath);
JFileChooser fc = new JFileChooser(a);

問題は、VisualVMを使用してガベージコレクターを手動で実行しない限り、メモ帳または他のエディターを使用して保存したファイルを手動で編集できないことです。

私は何かが足りないのですか、それとも他の誰かがこの行動を観察したのですか?

4

2 に答える 2

0

@TomGが指摘しているように、ストリームを閉じることは、ストリーム(つまり、ファイルをもう使用しない場合、アプリケーション)がファイルのハンドルを持たなくなったことを意味しますが、VisualVMもハンドルを解放することを意味しません(ただし、すべきだと思います)。アプリケーションがファイルを解放した後、何らかのバグまたは同様の理由で VisualVM がファイルのハンドルを保持しているかどうかを確認するには、VisualVM からアプリケーションを実行し、ファイルを手動で保存してみてください。それがまだ可能でない場合は、ストリームを開いたままにします。それ以外の場合は、Windows ハンドルまたは同様のツールを使用して、実際にファイル内でハンドルを保持しているものが VisualVM または別のアプリケーションであるかどうかを判断できます。

于 2013-03-12T16:58:54.310 に答える
0

「ありえないことを排除したとき、どんなにありそうもないことであれ、それが真実に違いない」 (SH)

無限ループが必要です。デバッグ、ログ記録は、自分自身を納得させるのに役立つ場合があります。または、別のファイルパスを混同していました。

(また、明確にするために:aファイル自体ではなく、ディレクトリです。)

于 2013-03-12T16:50:45.027 に答える