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:当输入过程中意外到达文件或流的末尾时,抛出此异常。

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

2022年腾讯云新春采购季代金券提前领 领取满减优惠券和域名优惠

2022年春节假期陆续结束,根据惯例在春节之后各大云服务商会继续开始一年的促销活动。今年二月中旬会开启新春采购季的活动,我们已经看到腾讯云商家在春节期间已经有预告活动。当时已经看到有抢先优惠促销活动,目前我们企业和个人可以领取腾讯云代金券满减活动,以及企业用户可以领取域名优惠低至.COM域名1元。 直达链接 - 腾讯云新春采购活动抢先看活动时间:2022年1月20日至2022年2月15日我们可以在...

webhosting24:€28/年,日本NVMe3900X+Webvps

webhosting24决定从7月1日开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,当然前提是价格依旧不变。目前来看,国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),这样的日本VPS还是有相当大的性价比的。官方网站:https://www.webhosting...

Budgetvm12核心 16G 500 GB SSD 或者 2 TB SATA 10GB  20 TB  99美金

Budgetvm(原EZ机房),2005年成立的美国老品牌机房,主打美国4个机房(洛杉矶、芝加哥、达拉斯、迈阿密)和日本东京机房的独立服务器和VPS业务,而且不限制流量,默认提供免费的1800G DDoS防御服务,支持IPv6和IPMI,多种免费中文操作系统可供选择,独立服务器主打大硬盘,多硬盘,大内存,用户可以在后台自行安装系统等管理操作!内存可定制升级到1536G,多块硬盘随时加,14TBSA...

eofexception为你推荐
模糊数学模糊数学与人们常说的数学有何差别?谢谢搜索引擎有哪些搜索引擎都有什么啊体系文件企业质量管理体系文件指的是什么?文件损坏文件损坏是由哪些原因造成的?有什么办法修复吗?空间背景图片怎么设置空间背景图片小项目如何搞小工程4g上网卡4g无线上网卡网络限速软件谁有网络限速的软件,路由器。很卡~别人一看电影什么都干不了。提供个限速的软件。下载成功给分!硬盘分区格式化新硬盘分区格式化有哪些方法?工作经验介绍工作经历简介怎么写
域名到期查询 3322动态域名注册 已经备案域名 256m内存 鲨鱼机 idc评测网 12306抢票助手 500m空间 免费个人空间 免费高速空间 酷番云 免费网页申请 789电视剧 根服务器 全能空间 中国联通宽带测速 免费网络空间 石家庄服务器 回程 免费php空间申请 更多