eofexceptionjava.io.EOFException这是个什么异常应该怎么解决

eofexception  时间:2021-09-02  阅读:()

出现java.io.EOFException 求教!!

你断点调试一下,你的构造 方法里面的if(fips.read()==-1)里面的语句是得不到执行的。

所以,那个文件里面根本没有写入空的List,你用readObject去取就会出错。

我运行了一下,断点后,发现了一个错误: 在你load之前,你首先实例化了一个output,可能这里出错了。

下面是正常运行的,你自己对比下: Person类我就没有贴了。

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; class TestFile { String f = null; FileInputStream fips = null; ObjectOutputStream oops = null; public TestFile() throws Exception { f = "d:" + File.separator + "resource.txt"; File fi = new File(f); if (!fi.exists()){ fi.createNewFile(); oops = new ObjectOutputStream(new FileOutputStream(fi)); List l = new ArrayList(); oops.writeObject(l); oops.flush(); oops.close(); } } public void save(Object o) throws Exception { @SuppressWarnings("unchecked") List per = (List) this.load(); per.add((Person) o); oops = new ObjectOutputStream(new FileOutputStream(f)); oops.writeObject(per); oops.close(); } public Object load() throws Exception { ObjectInputStream oips = new ObjectInputStream(new FileInputStream(f)); @SuppressWarnings("unchecked") List per2 = (List) oips.readObject(); oips.close(); return per2; } public static void main(String[] args) throws Exception { TestFile f = new TestFile(); f.save(new Person("小明", 12)); f.save(new Person("小红", 11)); } }

java程序运行时,出现EOFException异常,但是为什么我捕获后编译器报错??

顺序错了。

写成catch (EOFException e) { }catch(FileNotFoundException exc){ }catch( IOException ex){ } 就可以了。

java.io.EOFException怎么解决,同时文件怎么显示乱码

错误修正: /* * 数据的读取 */ public void load(File file) { // 文件输入流 FileInputStream inputStream; DataInputStream input = null; try { inputStream = new FileInputStream(file); // 数据输入流 input = new DataInputStream(inputStream); // 读出 String tempname; int temptime; while (input.available() > 0 && (tempname = (String) input.readUTF()) != null) { temptime = (int) input.readInt(); insert(tempname, temptime); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } }

java.io.EOFException这是个什么异常应该怎么解决

1,内部类BlockDataInputStream.的方法peekByte抛出的异常,意思就是到达了文件的末尾,程序却没有正常结束读取文件内容,你可以单步调试一下看看到达文件末尾之后程序为什么没有停下来 2,从异常来看,你是不是使用了一个内部类BlockDataInputStream?错误就在BlockDataInputStream.peekByte()方法. java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。

此异常主要被数据输入流用来表明到达流的末尾。

CUBECLOUD:香港服务器、洛杉矶服务器、全场88折,69元/月

CUBECLOUD(魔方云)成立于2016年,亚太互联网络信息中心(APNIC)会员,全线产品均为完全自营,专业数据灾备冗余,全部产品均为SSD阵列,精品网络CN2(GIA) CU(10099VIP)接入,与当今主流云计算解决方案保持同步,为企业以及开发者用户实现灵活弹性自动化的基础设施。【夏日特促】全场产品88折优惠码:Summer_2021时间:2021年8月1日 — 2021年8月8日香港C...

HostKvm四月优惠:VPS主机全场八折,香港/美国洛杉矶机房$5.2/月起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...

香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等VPS,全球独立服务器99元起步 湘南科技

全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...

eofexception为你推荐
execute我的世界execute命令怎么用信件格式书信格式返回什么叫函数返回?为什么要返回?javaHDvideo有支持AVI 或者RVMB格式的JAVA的手机视频播放器吗?路由器映射路由器映射设置教育城域网怎样进入寿光教育城域网网站t320华为T320怎么样硬盘分区格式化怎样给硬盘分区并格式化硬盘分区格式化硬盘分区后怎么格式化网络购物的发展网购未来的发展趋势如何?
美国和欧洲vps zpanel 外贸主机 payoneer 回程路由 win8.1企业版升级win10 国外免费空间 申请空间 cn3 免费网页空间 raid10 双12 彩虹云 主机管理系统 服务器论坛 apnic fatcow 防盗链 傲盾代理 性能测试工具 更多