1

私はJavaが初めてです。FileInputStream基本の andFileOutputStreambufferedInputStreamandを使ってファイルコピーアプリをやってみましたbufferedOutputStream。プログレスバーを使用してプログレスを表示したところ、うまくいきました。すべてが大丈夫でした。FileNotFoundExceptionエラーを報告するために catch 句を追加しました。同様に、破損したディスクからファイルをコピーしようとすると、ある程度までコピーされて停止しました。を検出するにはどうすればよいですかread errors。キャッチ句はありますか?私を助けてください。

4

2 に答える 2

2

これには根本的な解決策はありません。Java はオペレーティング システムに依存して、低レベルのファイル I/O を実行します。オペレーティング システムが、破損したファイルの読み取りを再試行している間に長時間フリーズすることを決定した場合、Java アプリケーションでできることは何もありません。

読み取りエラーを検出するにはどうすればよいですか。キャッチ句はありますか?

操作が最終的に失敗した場合read、何らかの IOException が発生します。ただし、例外のキャッチを追加しても、停止した読み取り要求のブロックを解除することはできません。

破損したディスクからデータを回復することは、Java で試みるべきことではありません。ディスク ブロック レベルでディスク デバイスにアクセスできるネイティブ アプリケーションを作成する必要があります。または、既存のデータ復旧ツールを使用してください。

于 2012-04-10T16:09:39.453 に答える
0

andオブジェクト (それぞれ) に対してread()andwrite()ステートメントを実行すると、ファイル システムからの読み取りまたはファイル システムへの書き込みに問題がある場合、ネイティブ部分から が発生する可能性があります。をキャッチしたのと同じ方法でキャッチし、そのメッセージを確認して、特定のエラーに関する詳細情報を得ることができます。FileInputStreamFileOutputStreamIOExceptionFileNotFoundException

于 2012-04-10T16:15:14.237 に答える