問題の説明
この例外は、入力中にファイルまたはストリームの末尾に誤って到達した場合に発生します。この例外は、データ入力ストリームによって、ストリームの末尾に到達したことを示すために使用されます。
解決策
この例外は、ファイルまたはストリームの末尾に誤って到達した場合に発生します。この例外は、データ入力ストリームによって、ストリームの末尾に到達したことを示すために使用されます。例外をキャッチし、入力ストリームの読み取りを停止することをお勧めします。
例:
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();
}
}
}