2

java.nio.channels.AsynchronousFileChannelファイルからデータを読み取るための2つの方法を提供します。

  1. read(dst, position, attachment, handler)完了すると、提供されたハンドラーを呼び出します
  2. read(dst, position)操作の結果をFuture表示できるaを返しますget()

CompletionHandlerインターフェイスはメソッドfailed(Throwable exc, A attachment)を指定しますが、は指定Futureしません。メソッドExecutionExceptionからをスローするオプションしかありません。get()

不安定なディスク上のファイルから読み取り、ディスクがIOエラーをスローしたとしましょう。この場合、これはどのように処理されますか?

具体的には、次の3つの質問があります。

  1. 上のfailed()メソッドCompletionHandlerが呼び出されますか?それともcompleted、結果としての操作を示し-1ますか?
  2. スローのget()メソッドFutureは例外をスローしますか、それとも単に-1読み取り結果として返されますか?
  3. いずれかの場合-1にが返される場合、IOエラーと単純なEOF条件(できれば操作のタイミングなどのハックなし)をどのように区別できますか?

何らかの理由で、これに関するドキュメントが見つかりません...

4

0 に答える 0