第一阶段学习第二十天day.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java第一阶段day20 做 善 良 的 人 学员的事就是最重要的事课程内容1、内存输出流2、对象操作流3、随机访问流4、打印流5、Properties6、IO中保证流对象关闭的标准格式1、名字是输出流,体系也是在IO的体系中,但是其实没有内存和其他设备的交互,仅仅是在内存中做了拷贝。所以没有真正的IO2、类名:ByteArrayOutputStream3、作用:当从某个文件汇总,读取了一部分不完整的字节信息的时候,需要找个一个容器缓存这些不完整的信息,ByteArrayOutputStream这个类型就可以充当这个容器,因为这个容器可以自动增长。有一个名为a.txt文件:你好你好吗?使用一个大小为3的字节数组,将文件中的内容,打印到控制台4、本质:一个可以自动增长的字节数组,并且提供了一些实用的方法时间管理5、常用方法: toByteArray():获取对象中的字节信息,返回一个字节数组 toString():将对象中的字节信息,进行解码,返回一个解码后的字符串内存输出流1、用于将内存中的对象,直接写出到目标文件中,或者从文件中读取一个对象到内存中。2、对象输出流、对象输入流对象输出流1、ObjectOutputStream:也是一个字节输出流,是OutputStream的子类,可以输出一个对象,用于将内存中的对象,写到其他设备中,例如文件、网络2、也是一个包装类,可以将一个没有输出对象功能的字节输出流,包装成有输出对象功能的字节流,包装完成之后,就多了一些方法。3、构造方法: ObjectOutputStream(OutputStream os):将一个普通的字节输出流包装成对象输出流4、最重要的成员方法: writeObject(Object obj):将内存中的obj对象,输出到该对象流中对象操作流5、注意事项: 1、要存储到文件中的对象,所属类型必须实现java.io.Serializable接口 2、对象存储到文件时,没有经过编码也没有经过解码,直接将字节信息存储到文件中;使用文本编辑器打开这个文件,相当于是做了解码操作,所以一定是乱码。将来这个文件就不应该使用文本编辑器打开,也不应该给人阅读,而是用于将来使用输入流读取的内容对象输出流1、ObjectInputStream:也是一个字节输入流,也是一个包装类,拥有父类的所有方法2、作用:是InputStream的子类,可以将文件中、网络中的一个对象,读取到内存中,进行使用3、构造方法: ObjectInputStream(InputStream is):将一个普通的字节输入流,包装成对象流4、有一个特有方法: readObject():可以将流中的一个对象读取到内存中对象输入流1、序列化和反序列化概念: 对象从内存到其他设备的过程:序列化(持久化) 对象从其他设备到内存的过程:反序列化2、序列化还是反序列化:都需要实现接口java.io.Serializable3、异常分析: EOFException,End Of File Exception,文件末尾异常 当文件已经到达末尾的时候,仍然要使用对象输入流读取对象,就发生此异常4、避免方式: 在写出对象的时候,不要直接将对象写出到文件中 而是,先把所有对象装进一个集合中,将集合整体写到文件中(也就是只把一个对象写到了文件中) 将来读取的时候,只读取一个集合对象,在内存中遍历这个集合,获取每个元素注意事项5、版本号问题: Exception in thread main java.io.InvalidClassException: com.ujiuye.demos.Student; local class incompatible: stream classdesc serialVersionUID = , local class serialVersionUID = 8 意思:修改了本地的Student类型,新的类型和文件中对象的类型已经不一致,所以两个版本冲突了,标志就是两个版本的序列化版本id不同 解决:不要使用自动生成的序列化版本ID,手动给定一个序列化版本ID,将来这个类型是否发生了版本变化,主要取决于程序员是否手动修改了这个类型的版本ID,如果修改了,那么文件中的对象类型和本地类型就不兼容,如果没有修改这个版本ID,那么无论怎样修改了类型内容,都可以做到文件对象类型和本地类型兼容。注意事项1、使用类型:RandomAccessFile2、不是一个流对象,不在IO体系中,但是比流对象更加的强大;既可以读,也可以写;可以随机访问。3、随机访问:人的需求是随机的,可能一会儿想访问这个位置,一会儿要访问另外一个位置,而随机访问流可以

文档评论(0)

135****9250 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档