




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十三课 文件与IO流 回顾 1 子类重写父类中的方法能否缩小访问权限和抛出更多的异常 nono2 方法重载需要满足哪些条件 在同一方法中 方法名相同 参数列表不同4 包装类型可以与基本类型之间相互赋值吗 可以5 将数字字串转换为基本数字类型该如何操作 parseXXX6 String类与StringBuffer类有何区别 string不可以被改变stringbuffer只有一个版本7 java lang包需要导入么 importjava lang 不需要 它是自动导入的8 Integersum null intsum02 sum parseInt 123 上面的代码片段操作正确么 Y9 一个类中的静态块在什么时候被执行 类中有入口main方法初始化一个类调用Javaapi反射方法 仅执行一次 10 静态块中可以操作实例成员 实例变量与实例方法 吗 不能11 protected提供的访问权限操作范围是什么 可被声明它的类和派生类的子类以及同一个包中的类访问12 this与super在调用成员方法和构造方法时有什么不同点 this调用是指向的本类 super是指向调用的父类 本课案例 使用文件流操作完成文件的复制 剪切等操作 本章目标 运用File类进行文件和目录操作理解流 标准输入 输出流的概念运用FileInputStream和FileOutputStream类读写文本文件运用BufferedReader和BufferedWriter类读写文本文件运用ObjectOutputStream与ObjectInputStream实现对象流的读写操作运用ByteArrayInputStream与ByteArrayOutputStream实现对象在内存中的序列化与反序列化 文件 什么是文件文件可认为是相关记录或放在一起的数据的集合 目录可以看成是一种特殊的文件 文件类型中的一种 可以再包含其他的目录和文件类型 而一般文件是文本等内容 不能再包含其他文件类型 文件一般存储在哪里 JAVA程序一般通过什么去访问文件属性 JAVAAPI java io File类 文件 文件 流 流是指一连串流动的字符 是以先进先出方式发送信息的通道 InputStream OutputStream 来自数据源的数据流 流向目的地的数据流 水池 数据源 进水口 输入流 出水口 输出流 下水道 目标 开关 房子 程序 输入输出流 读 写 按流向分为输入流和输出流 所谓输入输出是针对程序而言的 换言之输入流是读文件的流 输出流是写文件的流 流与数据源和程序之间的关系如下图所示 字节字符流 输入输出流又分为字节流 类名以Stream结尾 和字符流 Reader和Writer 两种形式字节流8位InputStreamOutputStream字符流16位UnicodeReaderWriter 文件的读写 文本文件的读写用FileInputStream读文本文件用FileOutputStream写文本文件用BufferedReader读文本文件用BufferedWriter写文本文件 引入相关的类importjava io IOException importjava io InputStream importjava io FileInputStream 构造一个文件输入流对象InputStreamfis newFileInputStream c test txt 利用文件输入流类的方法读取文本文件的数据fis available 可读取的字节数fis read 读取文件的数据关闭文件输入流对象fis close 用FileInputStream读文本文件 用FileInputStream读文本文件 创建一个FileInputStream对象 使用available 方法确定文件的大小 使用read 方法一次读取一个字符 然后将字符存储在字符数组中并显示字符 引入相关的类importjava io IOException importjava io OutputStream importjava io FileOutputStream 构造一个文件输出流对象OutputStreamfos newFileOutputStream c test txt 利用文件输出流的方法写文本文件Stringstr 我爱Java 好好学习 天天向上 byte words str getBytes fos write words 0 words length 关闭文件输出流fos close 用FileOutputStream写文本文件 用FileOutputStream写文本文件 使用write 方法将数据写入文件 引入相关的类importjava io FileReader importjava io BufferedReader importjava io IOException 构造一个BufferedReader对象FileReaderfr newFileReader c test txt BufferedReaderbr newBufferedReader fr 利用BufferedReader的方法读取文本文件的数据br readLine 读取一行数据 返回字符串关闭相关的流对象br close fr close 用BufferedReader读文本文件 用BufferedReader读文本文件 创建一个FileReader对象 读取一行数据 返回字符串 创建一个BufferedReader对象 关闭流 引入相关的类importjava io FileWriter importjava io BufferedWriter importjava io IOException 构造一个BufferedWriter对象FileWriterfw newFileWriter c test txt BufferedWriterbw newBufferedWriter fw 利用BufferedWriter的方法写文本文件bw write hello 相关流对象的清空和关闭bw close fw close 用BufferedWriter写文本文件 用BufferedWriter写文本文件 创建一个FileWriter对象 使用write 方法将数据写入文件 创建一个BufferedWriter对象 关闭流 使用newLine 方法生成换行符 对象流 能够输入和输出对象的流称为对象流 通过对象流可以将实现了Serializable接口的对象写进内存 磁盘或网络介质中 此过程称为对象的序列化过程 也可以通过对象流将内存 磁盘和网络中的字节流读入类的实例中 此过程称为对象的重构或反序列化对象的序列化仅仅只针对对象的实例变量值进行保存 不包括访问权限 变量类型和其它修饰符 所有的方法和静态变量将不会被序列化一个对象中的如果组合了对瞬态对象的引用 线程对象和流对象 则该对象不能被序列化 对象的序列化针对对象图是递归序列化的 如果使用transient关键字描述对象中一个不需要被序列化的字段 则该字段将不被序列化 如果transient修饰一个瞬态属性则意味着该对象将具备序列化的能力 使用对象流将对象写入文件 引入相关的类importjava io IOException importjava io OutputStream importjava io ObjectOutputStream 构造一个对象输出流对象OutputStreamfos newFileOutputStream c test txt ObjectOutputStreamoos newObjectOutputStream fos 利用对象输出流的方法写出对象Dated newDate oos writeObject d 关闭对象输出流oos close 使用对象流将对象读入文件 引入相关的类importjava io IOException importjava io OutputStream importjava io ObjectInputStream 构造一个对象输入流对象InputStreamfis newFileInputStream c test txt ObjectInputStreamois newObjectInputStream fis 利用对象输入流的方法从文件中读取对象ois readObject 关闭对象输出流ois close 序列化到磁盘的对象流 publicclassObjectStreamDemo publicstaticvoidmain String args ObjectOutputStreamoos null ObjectInputStreamois null try OutputStreamfos newFileOutputStream d object txt 写出对象到文件 序列化 oos newObjectOutputStream fos oos writeObject newDate InputStreamfis newFileInputStream d object txt 从文件中读取对象 反序列化 ois newObjectInputStream fis Dated Date ois readObject StringsaveTime newSimpleDateFormat yyyy MM ddHH mm ss format d System out println saveTime catch Exceptione e printStackTrace finally try if null oos oos close if null ois ois close catch IOExceptione e printStackTrace main方法结束 类结束 序列化到内存的对象流 publicclassObjectStreamDemo publicstaticvoidmain String args ObjectOutputStreamoos null ObjectInputStreamois null try ByteArrayOutputStreambaos newByteArrayOutputStream 写出对象到内存 序列化 oos newObjectOutputStream baos oos writeObject newDate 从内存中读取对象 反序列化 ByteArrayInputStreambais newByteArrayInputStream baos toByteArray ois newObjectInputStream bais Dated Date ois readObject StringsaveTime newSimpleDateFormat yyyy MM ddHH mm ss format d System out println saveTime catch Exceptione e printStackTrace finally try if null oos oos close if null ois ois close catch IOExceptione e printStackTrace main方法结束 类结束 总结 File类提供了对磁盘文件和目录的各种增删改查操作Java中的文件流包括字节流 字符流和对象流字节流以字节作为单位读取和写入 字符流以字符 两个字节 为单位读取和写入 对象流以字节为单位进行操作对象流模式可以实现对象的序列化与反序列化 反序列化将重构出一个新的对象副本只有实现了Serializable接口的对象才能实现序列化如果一个对象中的某个字段被transient关键字修饰则该属性不能被序列化到磁盘或内存中去 课后作业 一 回答下面的问题 A 文件对象的操作中能不能直接通过File对象删除一个非空文件夹 File
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聘用ktv员工合同范本
- 污水委托处理协议合同书
- 游泳健身培训合同协议书
- 物业与万达合作协议合同
- 食品事故赔偿协议书范本
- 电厂采购密封件合同范本
- 结石科合作协议合同范本
- 村道维修承包合同协议书
- 离职协议代签协议书范本
- 物业的车位买卖合同协议
- 医共体人事编制管理办法
- 小儿肛周脓肿护理
- 医院法律法规培训内容
- 山东畜牧兽医单招考试题及答案
- 玉米杂交种子质量控制与高效制种技术的应用探索
- 2025年 北京海淀区招聘社区工作者考试笔试试卷附答案
- 商户安全生产培训课件
- 【扶臂式挡土墙迎水坡和背水坡堤防整体抗滑稳定计算案例1200字】
- 四川省广元市2024-2025学年第二学期八年级期末考试数学试卷(无答案)
- 死亡病例讨论制度落实与质控优化
- 痛经的中医护理
评论
0/150
提交评论