すべてのプロダクト
Search
ドキュメントセンター

Mobile Testing - Deprecated:java_io_EOFException

最終更新日:Jan 17, 2025

問題の説明

この例外は、入力中にファイルまたはストリームの末尾に誤って到達した場合に発生します。この例外は、データ入力ストリームによって、ストリームの末尾に到達したことを示すために使用されます。

解決策

この例外は、ファイルまたはストリームの末尾に誤って到達した場合に発生します。この例外は、データ入力ストリームによって、ストリームの末尾に到達したことを示すために使用されます。例外をキャッチし、入力ストリームの読み取りを停止することをお勧めします。

例:

  java.io.EOFException
    at libcore.io.Streams.readAsciiLine(Streams.java:203)
    at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579)
    at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827)
    at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)

サンプルコード

  public static void main(String[] args) {
      DataInputStream input = null;
      try {
        //何らかの処理を実行します
        // EOFException がスローされるまで、すべての文字を読み取ります。
        input = new DataInputStream(new FileInputStream(FILENAME));
        while(true) {
          char num;
          try {
            num = input.readChar();
            System.out.println("ファイルから読み取っています: " + num);
          }
          catch (EOFException ex1) {
            break; //EOF に到達しました。
          }
          catch (IOException ex2) {
            System.err.println("IOException がキャッチされました: " + ex2.getMessage());
            ex2.printStackTrace();
          }
        }
      }
      catch (IOException ex) {
        System.err.println("IOException がキャッチされました: " + ex.getMessage());
        ex.printStackTrace();
      }
      finally {
        try {
          // 入力ストリームを閉じます。
          input.close();
        }
        catch(IOException ex) {
          System.err.println("IOException がキャッチされました: " + ex.getMessage());
          ex.printStackTrace();
        }
      }
    }

参照