版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标了解对象流类特点和用法了解管道流类特点和用法主要内容对象输入输出流PrintSteam管道输入输出流字节数组输入输出流对象输入输出流如果希望永久保存一些对象,则可以将对象转为字节数据写入到硬盘上,这个过程称为对象序列化。一个类如果实现了Serializable接口,那么这个类创建的对象就是所谓序列化的对象。所谓“对象序列化”:
简单一句话:使用它可以像存储文本或者数字一样简单的存储对象。对象输入输出流对象序列化的步骤:为需要被序列化的对象实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的。使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象。使用ObjectOutputStream对象的writeObject(Objectobj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。对象输入输出流【例8-11】将Student对象序列化,保存在硬盘上。Ex8_11.java程序运行结果如图所示对象输入输出流【例8-12】对象反序列化实例
importjava.io.*;publicclassEx8_12{ publicstaticvoidmain(String[]args)throwsException{//创建文件输入流对象,用于读取指定文件的数据 FileInputStreamfis=newFileInputStream("ob.txt");//创建对象输入流,并且从指定的输入流中读取数据 ObjectInputStreamois=newObjectInputStream(fis);//从objectStream.txt中读取Student对象 Studentp=(Student)ois.readObject(); System.out.println("---------从文件中读取后----------"); System.out.println("Student对象的id:"+p.getId()); System.out.println("Student对象的name:"+p.getName()); System.out.println("Student对象的age:"+p.getAge()); } }Student类定义同【例8-11】,此处省略。PrintStream打印流用于将数据进行格式化输出,打印流在输出时会进行字符格式转换,默认使用操作系统的编码进行字符转换。PrintStream类的常用构造方法:PrintWriter类的常用构造方法有四个:PrintStream(Filefile):创建指定文件且不带自动刷新的新PrintStream。PrintStream(Stringfilename):创建指定文件且不带自动刷新的新PrintStream。PrintStream(Filefile,Stringcsn):创建指定文件和字符集且不带自动刷新的新PrintStream。PrintStream(OutputStreamout):使用OutputStream类型的对象创建PrintStream。PrintWriter(Filefile):创建指定文件且不带自动刷新的新PrintWriter。Printwriter(Stringfilename):创建指定文件且不带自动刷新的新PrintWriter。PrintWruter(Filefile,Stringcsn):创建指定文件和字符集且不带自动刷新的新PrintWriter。PrintWriter(OutputStreamout):使用OutputStream类型的对象创建PrintWriter。PrintStreamPrintStream类和PrintWriter类的常用方法【例8-13】使用PrintWriter类写文本文件。Ex8_13.java返回值类型方法名称功
能voidprint(inti)输出int类型数据voidprint(floatf)输出float类型数据voidprint(Strings)输出String类型数据voidprint(Objecto)输出Object类型数据voidprintln(inti)输出int类型数据及换行符管道输入输出流
管道流分为管道输入流(PipedlnputStream)和管道输出流(PipedOutputStream),它是一种比较特殊的流,必须先建立连接才能进行彼此间通信。PipedOutputStream用于向管道中写入数据,PipedlnputStream用于从管道中读取写入的数据。
【例8-14】使用管道流通信的程序。Ex8_14.java字节数组输入输出流JDK中提供了字节数组输入输出流ByteArrayInputStream和ByteArrayOutputStream。在创建一个字节数组输入输出流类对象时,会同时创建一个byte型数组作为缓冲区。当向ByteArrayOutputStream对象写数据时,该对象会把所有的数据先写入缓冲区,最后一次性写入文件。
【例8-15】用ByteArrayOutputStream将数据写入缓冲区。Ex8_15.java使用ByteArrayOutputStream创建一个缓冲区,该缓冲区会根据存入数据的多少而自动化,因此就可以减少写数据的次数,使程序变得更灵活,从而提高应用程序的效率。需要注意的是,如果读取的文件非常大,就不能使用这个类,否则会造成内存溢出。字节数组输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年机械工程师职称考试仿真题集
- 2026年航空公司招聘面试实务
- 2026年少儿地理知识问答
- 2026年预防踩踏事故安全知识
- 2026年医师资格考试实践技能操作模拟题
- 2026年金融科技岗面试题精
- 护理临床与标准化管理
- 2026年肺结核健康教育知识讲座报告
- 2026年医院消防知识安全宣教
- 2026年药学士招聘笔试模拟题
- 雨课堂学堂在线学堂云《中国马克思主义与当代(北京航空航天)》单元测试考核答案
- 2026年发展对象考试测试题库附答案
- 2025年石家庄市市属国有企业公开招聘应届毕业生223人笔试历年参考题库附带答案详解
- (2026版)贪污贿赂司法解释(二)培训纲要课件
- 编织袋厂工作制度范本
- 急性主动脉夹层合并冠心病的诊断与治疗中国专家共识课件
- 污水处理设施运维服务投标方案(技术方案)
- DB15∕T 1937-2020 灌木林防风固沙生态效益监测技术规程
- 《电动汽车检查与维护》一体化课程标准
- GB/T 19243-2003硫化橡胶或热塑性橡胶与有机材料接触污染的试验方法
- GB/T 11352-2009一般工程用铸造碳钢件
评论
0/150
提交评论