私はJavaが初めてです。FileInputStream
基本の andFileOutputStream
とbufferedInputStream
andを使ってファイルコピーアプリをやってみましたbufferedOutputStream
。プログレスバーを使用してプログレスを表示したところ、うまくいきました。すべてが大丈夫でした。FileNotFoundException
エラーを報告するために catch 句を追加しました。同様に、破損したディスクからファイルをコピーしようとすると、ある程度までコピーされて停止しました。を検出するにはどうすればよいですかread errors
。キャッチ句はありますか?私を助けてください。
2 に答える
これには根本的な解決策はありません。Java はオペレーティング システムに依存して、低レベルのファイル I/O を実行します。オペレーティング システムが、破損したファイルの読み取りを再試行している間に長時間フリーズすることを決定した場合、Java アプリケーションでできることは何もありません。
読み取りエラーを検出するにはどうすればよいですか。キャッチ句はありますか?
操作が最終的に失敗した場合read
、何らかの IOException が発生します。ただし、例外のキャッチを追加しても、停止した読み取り要求のブロックを解除することはできません。
破損したディスクからデータを回復することは、Java で試みるべきことではありません。ディスク ブロック レベルでディスク デバイスにアクセスできるネイティブ アプリケーションを作成する必要があります。または、既存のデータ復旧ツールを使用してください。
andオブジェクト (それぞれ) に対してread()
andwrite()
ステートメントを実行すると、ファイル システムからの読み取りまたはファイル システムへの書き込みに問題がある場合、ネイティブ部分から が発生する可能性があります。をキャッチしたのと同じ方法でキャッチし、そのメッセージを確認して、特定のエラーに関する詳細情報を得ることができます。FileInputStream
FileOutputStream
IOException
FileNotFoundException