问题分析:
当输入过程中意外到达文件或流的末尾时,抛出此异常。此异常主要被数据输入流用来表明到达流的末尾。
解决方案:
因为不知道流的末尾,当到达末尾的时候,抛出了此异常。这种异常主要被数据输入流用来表明到达流的末尾,建议捕获异常并退出读取输入流。
示例:
- [backcolor=transparent] java[backcolor=transparent].[backcolor=transparent]io[backcolor=transparent].[backcolor=transparent]EOFException
- [backcolor=transparent] at libcore[backcolor=transparent].[backcolor=transparent]io[backcolor=transparent].[backcolor=transparent]Streams[backcolor=transparent].[backcolor=transparent]readAsciiLine[backcolor=transparent]([backcolor=transparent]Streams[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]203[backcolor=transparent])
- [backcolor=transparent] at libcore[backcolor=transparent].[backcolor=transparent]net[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]HttpEngine[backcolor=transparent].[backcolor=transparent]readResponseHeaders[backcolor=transparent]([backcolor=transparent]HttpEngine[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]579[backcolor=transparent])
- [backcolor=transparent] at libcore[backcolor=transparent].[backcolor=transparent]net[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]HttpEngine[backcolor=transparent].[backcolor=transparent]readResponse[backcolor=transparent]([backcolor=transparent]HttpEngine[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]827[backcolor=transparent])
- [backcolor=transparent] at libcore[backcolor=transparent].[backcolor=transparent]net[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]HttpURLConnectionImpl[backcolor=transparent].[backcolor=transparent]getResponse[backcolor=transparent]([backcolor=transparent]HttpURLConnectionImpl[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]283[backcolor=transparent])
- [backcolor=transparent] at libcore[backcolor=transparent].[backcolor=transparent]net[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]HttpURLConnectionImpl[backcolor=transparent].[backcolor=transparent]getInputStream[backcolor=transparent]([backcolor=transparent]HttpURLConnectionImpl[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]177[backcolor=transparent])
代码示例:
- [backcolor=transparent] [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] main[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent][][backcolor=transparent] args[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]DataInputStream[backcolor=transparent] input [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]null[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]//do something
- [backcolor=transparent] [backcolor=transparent]// Read all characters, until an EOFException is thrown.
- [backcolor=transparent] input [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]DataInputStream[backcolor=transparent]([backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]FileInputStream[backcolor=transparent]([backcolor=transparent]FILENAME[backcolor=transparent]));
- [backcolor=transparent] [backcolor=transparent]while[backcolor=transparent]([backcolor=transparent]true[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]char[backcolor=transparent] num[backcolor=transparent];
- [backcolor=transparent] [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] num [backcolor=transparent]=[backcolor=transparent] input[backcolor=transparent].[backcolor=transparent]readChar[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]out[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]"Reading from file: "[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] num[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]EOFException[backcolor=transparent] ex1[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]break[backcolor=transparent];[backcolor=transparent] [backcolor=transparent]//EOF reached.
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex2[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]err[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]"An IOException was caught: "[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] ex2[backcolor=transparent].[backcolor=transparent]getMessage[backcolor=transparent]());
- [backcolor=transparent] ex2[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]err[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]"An IOException was caught: "[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] ex[backcolor=transparent].[backcolor=transparent]getMessage[backcolor=transparent]());
- [backcolor=transparent] ex[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]finally[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]// Close the input stream.
- [backcolor=transparent] input[backcolor=transparent].[backcolor=transparent]close[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]catch[backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]err[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]"An IOException was caught: "[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] ex[backcolor=transparent].[backcolor=transparent]getMessage[backcolor=transparent]());
- [backcolor=transparent] ex[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
参考文献:
https://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html
https://examples.javacodegeeks.com/java-basics/exceptions/java-io-eofexception-how-to-solve-eofexception/