基于I/O流的图书管理系统

不知不觉JavaSE的学习已经过了一个月了,我们终于迎来了JavaSE基础学习的最终挑战

图书管理系统!! 

但相信各位同学在平时的学习一定是特别刻苦特别努力一点也没有摸鱼(确信),相信写个小系统还是轻轻松松吧!

好了,吹捧完    歌颂完大家的高尚品质,下面进入正题,但是代码太太太太多了,所以这里只介绍一下我过程中遇到的 无数个抠掉头发的大问题 简单的几个小问题吧,严肃起来了(严肃中国红)


1.I/O流概念问题

做本项目时,我选择来了用对象序列化来存取数据,即将所有的对象实例全放在相应类型的集合中,在通过序列化将集合(集合也是对象实例)存放至本地文件夹内,即可完成数据存取。

但是通过序列化存储读取数据的时候需要注意,被读取的文件中必须有数据,或者说不为空才能读取,不然就会报错

 但用I/O流存数据的时候 I/O流会自动帮你创建文件,所以我推荐在使用序列化时,尽量不要在不确定创建文件下一步就会进行存储数据的时候用createNewFile()方法来创建文件,而让I/O流自动帮你创建文件。

那么我是怎么在遵循这个原则的情况下还是出现了这个错误呢?可以看下面这段代码

 我们在进行删除操作时,如果刚好删除的是集合中最后的数据,导致集合为空,那么我们存进文件的就是一个空集合,即文件为空,这是我们再进行相关信息的读取,就会遇到上述错误,我们这里对代码进行修改

 可以看到我们再删除操作进行之后,对当前集合进行了一个判空,如果集合为空,那么我们就放弃本次数据的存入,并且将文件删掉,而在下一次用户进行写入的时候重新创建文件,这样就避免了这个错误

2.

懒病犯了,下次更新吧!下次一定

 

 

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值