开发者社区 问答 正文

java_io_EOFException该如何使用


问题分析:
当输入过程中意外到达文件或流的末尾时,抛出此异常。此异常主要被数据输入流用来表明到达流的末尾。
解决方案:
因为不知道流的末尾,当到达末尾的时候,抛出了此异常。这种异常主要被数据输入流用来表明到达流的末尾,建议捕获异常并退出读取输入流。
示例:

  1. [backcolor=transparent]  java[backcolor=transparent].[backcolor=transparent]io[backcolor=transparent].[backcolor=transparent]EOFException
  2. [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])
  3. [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])
  4. [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])
  5. [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])
  6. [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])

代码示例:
  1. [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]{
  2. [backcolor=transparent]      [backcolor=transparent]DataInputStream[backcolor=transparent] input [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]null[backcolor=transparent];
  3. [backcolor=transparent]      [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
  4. [backcolor=transparent]        [backcolor=transparent]//do something
  5. [backcolor=transparent]        [backcolor=transparent]// Read all characters, until an EOFException is thrown.
  6. [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]));
  7. [backcolor=transparent]        [backcolor=transparent]while[backcolor=transparent]([backcolor=transparent]true[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  8. [backcolor=transparent]          [backcolor=transparent]char[backcolor=transparent] num[backcolor=transparent];
  9. [backcolor=transparent]          [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
  10. [backcolor=transparent]            num [backcolor=transparent]=[backcolor=transparent] input[backcolor=transparent].[backcolor=transparent]readChar[backcolor=transparent]();
  11. [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]);
  12. [backcolor=transparent]          [backcolor=transparent]}
  13. [backcolor=transparent]          [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]EOFException[backcolor=transparent] ex1[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  14. [backcolor=transparent]            [backcolor=transparent]break[backcolor=transparent];[backcolor=transparent] [backcolor=transparent]//EOF reached.
  15. [backcolor=transparent]          [backcolor=transparent]}
  16. [backcolor=transparent]          [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex2[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  17. [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]());
  18. [backcolor=transparent]            ex2[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
  19. [backcolor=transparent]          [backcolor=transparent]}
  20. [backcolor=transparent]        [backcolor=transparent]}
  21. [backcolor=transparent]      [backcolor=transparent]}
  22. [backcolor=transparent]      [backcolor=transparent]catch[backcolor=transparent] [backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  23. [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]());
  24. [backcolor=transparent]        ex[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
  25. [backcolor=transparent]      [backcolor=transparent]}
  26. [backcolor=transparent]      [backcolor=transparent]finally[backcolor=transparent] [backcolor=transparent]{
  27. [backcolor=transparent]        [backcolor=transparent]try[backcolor=transparent] [backcolor=transparent]{
  28. [backcolor=transparent]          [backcolor=transparent]// Close the input stream.
  29. [backcolor=transparent]          input[backcolor=transparent].[backcolor=transparent]close[backcolor=transparent]();
  30. [backcolor=transparent]        [backcolor=transparent]}
  31. [backcolor=transparent]        [backcolor=transparent]catch[backcolor=transparent]([backcolor=transparent]IOException[backcolor=transparent] ex[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
  32. [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]());
  33. [backcolor=transparent]          ex[backcolor=transparent].[backcolor=transparent]printStackTrace[backcolor=transparent]();
  34. [backcolor=transparent]        [backcolor=transparent]}
  35. [backcolor=transparent]      [backcolor=transparent]}
  36. [backcolor=transparent]    [backcolor=transparent]}

参考文献:

  1. https://docs.oracle.com/javase/7/docs/api/java/io/EOFException.html

  2. https://examples.javacodegeeks.com/java-basics/exceptions/java-io-eofexception-how-to-solve-eofexception/

展开
收起
猫饭先生 2017-10-25 10:26:38 1417 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: