48

java.io.IOException最も一般的なタイプの例外のようであり、偶然にも、最もあいまいなタイプのようです。

ソケットやファイルなどで書いているときはいつも見ていthrows IOExceptionます。しかし、実際に私に発砲したことは一度もないので、例外を発火させるのは何であるのか疑問に思います。ドキュメントは、何が起こっているのかを説明するのにあまり役立ちません。

ある種のI/O例外が発生したことを通知します。このクラスは、I/O操作の失敗または中断によって生成される例外の一般的なクラスです。

IOExceptionがスローされるいくつかのインスタンスは何ですか、そしてそれはどのように使用されることになっていますか?

4

3 に答える 3

88

あなたがいたと仮定します:

  1. ネットワークファイルを読み取って切断されました。
  2. 使用できなくなったローカルファイルを読み取る。
  3. 一部のストリームを使用してデータを読み取り、その他のプロセスを使用してストリームを閉じました。
  4. ファイルの読み取り/書き込みを試みていますが、権限がありません。
  5. ファイルに書き込もうとしましたが、ディスク容量が利用できなくなりました。

他にも多くの例がありますが、私の経験では、これらが最も一般的です。

于 2012-11-04T04:51:10.183 に答える
18

一般に、I/Oは入力または出力を意味します。IOExceptionこれらのメソッドは、入力または出力操作が失敗または解釈されるたびにスローします。Javaが自動的に処理するため、これはメモリへの読み取りまたは書き込みのためにスローされないことに注意してください。

結果として生じるいくつかのケースがありIOExceptionます。

  • 閉じた入力ストリームからの読み取り
  • ネットワークに接続せずにインターネット上のファイルにアクセスしてみてください
于 2012-11-04T04:53:37.327 に答える
12

Javaのドキュメントは、特定のIOExceptionの根本的な原因を知るのに役立ちます。

ドキュメントページからの直接既知のサブインターフェイスをご覧ください。IOException

ChangedCharSetException, CharacterCodingException, CharConversionException, ClosedChannelException, EOFException, FileLockInterruptionException, FileNotFoundException, FilerException, FileSystemException, HttpRetryException, IIOException, InterruptedByTimeoutException, InterruptedIOException, InvalidPropertiesFormatException, JMXProviderException, JMXServerErrorException, MalformedURLException, ObjectStreamException, ProtocolException, RemoteException, SaslException, SocketException, SSLException, SyncFailedException, UnknownHostException, UnknownServiceException, UnsupportedDataTypeException, UnsupportedEncodingException, UserPrincipalNotFoundException, UTFDataFormatException, ZipException

これらの例外のほとんどは自明です。

IOExceptions根本的な原因のいくつか:

EOFException:入力中にファイルの終わりまたはストリームの終わりに予期せず到達したことを通知します。この例外は、主にデータ入力ストリームによって使用され、ストリームの終了を通知します。

SocketException:ソケットの作成またはアクセス中にエラーが発生したことを示すためにスローされます。

RemoteException:RemoteExceptionは、リモートメソッド呼び出しの実行中に発生する可能性のあるいくつかの通信関連の例外の一般的なスーパークラスです。java.rmi.Remoteを拡張するインターフェースであるリモート・インターフェースの各メソッドは、throws節にRemoteExceptionをリストする必要があります。

UnknownHostException:ホストのIPアドレスを特定できなかったことを示すためにスローされます(インターネットに接続していない可能性があります)。

MalformedURLException:不正な形式のURLが発生したことを示すためにスローされます。仕様文字列に有効なプロトコルが見つからなかったか、文字列を解析できませんでした。

于 2016-07-14T09:19:39.687 に答える