




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第七讲输入输出流 File类文件随机读写输入输出流基本文件输入输出对象流通过URL对象访问网页 2 File类 File类是IO包中唯一代表磁盘文件本身信息的类 而不是文件中的内容 File类定义了一些与平台无关的方法来操纵文件 例 创建 删除文件和重命名文件 Java中的目录被当作一种特殊的文件使用 list方法可以返回目录中的所有子目录和文件名 在Unix下的路径分隔符为 在DOS下的路径分隔符为 Java可以正确处理Unix和DOS的路径分隔符 3 File类的功能十分强大 它可以访问指定文件的所有属性 包括文件名称 文件长度 文件的最后修改时间等 同时还可以利用File类来建立文件对象 删除文件和改变文件名称等 创建文件对象有三种构造方法 File类具有下面三种构造函数 File Stringpathname File Stringpathname Stringname File Filedir Stringname 其中参数如下所示 Stringpathname 给定的文件对象的路径 可以使绝对路径也可以是相对路径 Stringname 文件名 Stringdir 抽象路径名 File类 4 File类 这三种方法只是生成一个文件对象 但是没有生成真正的文件 如果要生成实在的文件 需调用createNewFile 方法 如果在指定的路径中生成一个文件夹需调用mkdir 方法 要将建一个文件或者目录 该文件或目录的上一级目录必须事先就要存在 5 publicStringgetName 用于获得文件的名称 但不包含文件所在的路径publicStringgetPath 用于获得文件的相对路径publicStringgetAbsolutePath 返回文件绝对路径publicStringgetParent 返回文件的上一级目录的名称publicbooleanrenameTo Filedest 重命名文件PublicintcompareTo Filepathname 按字母顺序比较两个抽象路径名publicnativebooleanisAbsolute 如果文件名为绝对名则返回真 File类中提供的有关文件名处理的方法 File类 6 publicbooleanisFile 用于测试当前文件对象是不是文件publicbooleanisDirectory 判断当然文件对象是否是目录publicbooleanexists 判断文件是否存在publicbooleancanWrite 判断文件是否可写publicbooleancanRead 判断文件是否可读publicStringsetReaeOnly 将当前文件对象设置为只读publiclonglength 用于获得当前文件的长度以字节为单位 File类中提供的有关文件属性测试方面的方法 File类 7 publicbooleanmkdir 创建此抽象路径名指定的目录 publicbooleanmkdirs 创建此抽象路径名指定的目录 包括所有必需但不存在的父目录 注意 此操作失败时也可能已经成功地创建了一部分必需的父目录 publicbooleancreateNewFile 根据当前的文件对象创建一个新的文件publicbooleandelete 删除当前文件publicString list 列出当前目录下的所有文件和目录publicString list FilenameFilterfilter 列出目录下的指定类型文件 File类中提供的有关文件操作方面的方法 8 文件随机读写 从文件的任意一个位置开始读写 用RandomAccessFile类实现文件的随机读写 一般的流中 文件指针只能顺序移动 RandomAccessFile可以任意移动文件指针 9 用法 创建RandomAccessFile对象seek longpos 方法将文件指针移动到距离文件开头pos个字节处 getFilePoint 返回当前文件指针位置 length 返回文件的长度 可用方法writeChar writeInt readChar readInt等对文件进行各种类型的读写 10 例 向文件test txt末尾添加一个字符串 hi importjava io publicclassRand publicstaticvoidmain Stringargs throwsIOException RandomAccessFilef try f newRandomAccessFile test txt rw f seek f length f writeBytes hi r n catch Exceptione System out println error 11 例 向文件写入字符串 importjava io publicclassRandw publicstaticvoidmain Stringargs throwsIOException RandomAccessFilef try f newRandomAccessFile test txt rw f writeBytes XuYingxiao r n f writeBytes 1 28 r n f writeBytes LiuFang r n f writeBytes 6 16 r n catch Exceptione 12 流概念键盘输入和屏幕输出处理流基本文件输入输出字节流和字符流对象流通过URL对象访问网页 输入输出流 13 流 可以被理解为一条 管道 这条 管道 有两个端口 一端与数据源 当输入数据时 或数据宿 当输出数据时 相连 另一端与程序相连 流概念 14 流概念 Java使用流的机制实现输入输出操作 流 是一个数据序列 有两种流 1 输入流 通过打开一个到数据源 文件 内存或网络端口上的数据 的输入流 程序可以从数据源上顺序读取数据 2 输出流 通过打开一个到目标的输出流 程序可以向外部目标顺序写数据 15 读数据的逻辑为 openastreamwhilemoreinformationreadinformationclosethestream 写数据的逻辑为 openastreamwhilemoreinformationwriteinformationclosethestream 16 Java用于输入输出流的类 按所读写的数据类型分两类 字符流类 CharacterStreams 字符流类用于向字符流读写16位二进制字符 字节流类 ByteStreams 字节流类用于向字节流读写8位二进制的字节 一般地 字节流类主要用于读写诸如图象或声音等的二进制数据 17 Java用于输入输出流的类 java io中的基本流类 说明 它们是抽象类 不能直接创建对象 18 InputStream方法 Thethreebasicreadmethods intread intread byte buffer intread byte buffer intoffset intlength Theothermethods voidclose intavailable longskip longn 19 OutputStream方法 Thethreebasicwritemethods voidwrite intc voidwrite byte buffer voidwrite byte buffer intoffset intlength Theothermethods voidclose voidflush 20 Reader方法 Thethreebasicreadmethods intread intread char cbuf intread char cbuf intoffset intlength Theothermethods voidclose booleanready longskip longn 21 Writer方法 Thethreebasicwritemethods voidwrite intc voidwrite char cbuf voidwrite char cbuf intoffset intlength voidwrite Stringstring voidwrite Stringstring intoffset intlength Theothermethods voidclose voidflush 22 InputStreamClass的继承关系 23 OutputStreamClass的继承关系 24 ReaderClass的继承关系 25 WriterClass的继承关系 26 数据流的使用 对输入 输出流类按用途分 数据的发起与接收流用于向诸如字符串 文件 管道等专用的数据池读写数据 处理流 处理流类在进行读写时要执行某种处理 如缓冲 编码等 27 键盘输入和屏幕输出 Java中对应键盘输入的输入流为System in 对应屏幕输出的输出流为System out in和out都是System的类变量 in的类型为InputStream类型 可以使用read 方法进行读取 out的类型为PrintStream类型 经常使用方法print 和println System in的read 方法一次只能读取一个字符或按照byte类型的数组来读取 28 例 importjava io classIOApp publicstaticvoidmain Stringargs throwsIOException bytebuffer newbyte 255 System out println enter System in read buffer 0 255 System out println Got Stringx newString buffer System out println x 29 处理流 BufferedReader类的readLine 方法可以一次从流中读取一行 构造器的参数为Reader类型 类InputStreamReader是Reader的子类 构造器参数为输入流 为了输入字符串可以将System in先传给处理流InputStreamReader后再传给处理流BufferedReader 30 例 importjava io publicclassCharInput publicstaticvoidmain Stringargs throwsIOException Strings InputStreamReaderir BufferedReaderin ir newInputStreamReader System in in newBufferedReader ir in newBufferedReader newInputStreamReader System in while s in readLine null System out println Read s 31 基本文件输入输出 FileInputStream和FileOutputStream处理文件输入输出操作 构造方法参数 字符串代表的文件或File类型的对象 用read 和write 方法读写文件 32 例 importjava io publicclassFileApp1 publicstaticvoidmain Stringargs throwsIOException intb FileInputStreamfileIn newFileInputStream fileapp1 java while b fileIn read 1 System out print char b 33 字节流和字符流 Java中的流根据处理数据的不同分为字节流和字符流 字节流按照字节 8位 传输 字符流按照字符 16位 传输 由于字符使用Unicode字符集 支持多国文字 若要流跨平台传输 应使用字符流 常见的字节流 文件 FileInputStream FileOutStream 内存 数组 管道常见的字符流为 文件 内存 数组 内存 字符串 管道 34 对象流 Java中的对象可以通过流的方式进行处理 这称为对象的序列化 对象输出流ObjectOutputStream对象输入流ObjectInputStream对象序列化的步骤定义可以通过流处理的类创建节点输入 输出流创建对象处理流从流中读写对象 35 对象流 一个类只有实现了Serializable接口 其对象才能够通过流进行输入输出 Serializable接口不需要实现任何方法 一个对象可能有各种类型的成员变量 对象序列化包括这些成员变量中的值 通过对象输出流的writeObject 方法可以将对象写入对应的节点流中 通过对象输入流的readObject 方法可以从普通的流中读取对象 读取后返回的类型是Object类型 通过强制转换可将其转换为原来的类型 36 例 importjava io classMmimplementsSerializable intx 10 inty 20 Strings voidtt System out println hi public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 统编版五年级语文上册期中拔尖测评卷(含答案)
- 广西壮族自治区柳州市2024-2025学年五年级下册期末考试语文试卷(有答案)
- 北师大版五年级上册数学期中检测卷(无答案)
- 空调消防改造合同范本
- 房租合同范本电子档
- 社区摄影基础知识培训课件
- 上门讨要赔偿合同范本
- 店面出租消防合同范本
- 沥青储罐安装合同范本
- 食品原料oem合同范本
- 园区消防安全联动制度
- 《慈善法》知识竞赛题库与的答案(完整版)
- 《专业导论》课程教学大纲
- 初中必背古诗文138首
- 奉化区地图宁波市奉化区乡镇街道地图高清矢量可填充编辑地图模板
- 变电站巡视检查项目记录表
- 光伏发电技术项目投标书(技术标)
- (正式版)HGT 6276-2024 双酚F型环氧树脂
- Q-GDW1799.2-2013-电力安全工作规程-线路部分
- (新)外研版初中英语语法(表格式)网络结构图
- 油脂制取与加工工艺学课件
评论
0/150
提交评论