已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010 1 10 1 Java面向对象程序设计 第12章 配合例子源代码一起使用 Powerpoint制作 耿祥义张跃平 输入输出流 2010 1 10 2 主要内容文件字节流与文件字符流缓冲流随机流数组流数据流对象流序列化与对象可隆文件锁使用Scanner解析文件难点序列化与对象可隆使用Scanner解析文件 导读 2010 1 10 3 输入 输出流提供一条通道程序 可以使用这条通道读取源中的数据或把数据传送到目的地 把输入流的指向称作源 程序从指向源的输入流中读取源中的数据 而输出流的指向是数据要去的一个目的地 程序通过向输出流中写入数据把数据传送到目的地 概述 2010 1 10 4 12 1File类 File对象主要用来获取文件本身的一些信息 不涉及对文件的读写操作 创建一个File对象的构造方法有3个 File Stringfilename File StringdirectoryPath Stringfilename File Filef Stringfilename 例题12 1 2010 1 10 5 12 1 1文件的属性 File类的下列方法获取文件本身的一些信息 publicStringgetName 获取文件的名字 publicbooleancanRead 判断文件是否是可读的 publicbooleancanWrite 判断文件是否可被写入 publicbooleanexits 判断文件是否存在 publiclonglength 获取文件的长度 单位是字节 publicStringgetAbsolutePath 获取文件的绝对路径 publicStringgetParent 获取文件的父目录 publicbooleanisFile 判断文件是否是一个普通文件 而不是目录 publicbooleanisDirectroy 判断文件是否是一个目录 publicbooleanisHidden 判断文件是否是隐藏文件 publiclonglastModified 获取文件最后修改的时间 2010 1 10 6 12 1 2目录 1 publicbooleanmkdir 创建目录2 列出目录中的文件publicString list 用字符串形式返回目录下的全部文件 publicFile listFiles 用File对象形式返回目录下的全部文件 3 列出目录下指定类型的文件publicString list FilenameFilterobj 用字符串形式返回目录下的指定类型的所有文件 publicFile listFiles FilenameFilterobj 用File对象形式返回目录下的指定类型所有文件 4 上述两方法的参数FilenameFilter是一个接口 该接口有一个方法 publicbooleanaccept Filedir Stringname 例题12 2 2010 1 10 7 12 1 3文件的创建与删除 当使用File类创建一个文件对象后 例如Filefile newFile c myletter letter txt 如果c myletter目录中没有名字为letter txt文件 文件对象file调用方法publicbooleancreateNewFile 可以在c myletter目录中建立一个名字为letter txt的文件 文件对象调用方法publicbooleandelete 可以删除当前文件 例如 file delete 2010 1 10 8 12 1 4运行可执行文件 用Runtime类声明一个对象 Runtime类在java lang包 Runtimeec 然后使用该类的getRuntime 静态方法创建这个对象 ec Runtime getRuntime ec可以调用exec Stringcommand 方法打开本地机的可执行文件或执行一个操作 例题12 3 2010 1 10 9 12 2文件字节流 如果程序对文件的操作比较简单 比如只是顺序地读写文件 那么就可以使用FileInputStream和FileOutputSream类创建的流对文件进行读写操作 2010 1 10 10 12 2 1文件字节输入流 1 创建文件字节输入流FileInputStream类创建的对象被称作文件字节输入流 构造方法 FileInputStream Stringname FileInputStream Filefile 读取一个名为hello txt的文件 建立一个文件输入流对象 如下所示 try FileInputStreamin newFileInputStream hello txt catch IOExceptione System out println Filereaderror e 2 以字节为单位读文件read方法的格式如下 intread intread byteb intread byteb intoff intlen 例题12 4 2010 1 10 11 12 2 2文件字节输出流 1 创建文件字节输出流FileOutputStream类创建的对象被称作文件字节输出流 构造方法 FileOutputStream Stringname FileOutputStream Filefile 2 以字节为单位写文件read方法的格式如下 publicvoidwrite byteb publicvoidwrite byteb intoff intlen 例题12 5 2010 1 10 12 12 2 3关闭流 close 方法 如果没有关闭那些被打开的流 那么就可能不允许另一个程序操作这些流所用的资源 保证操作系统把流缓冲区的内容写到它的目的地 2010 1 10 13 12 3文件字符流 1 FileReader和FileWriter用来创建文件字符输入 输出流 构造方法 FileReader Stringfilename FileReader Filefilename FileWriter Stringfilename FileWriter Filefilename 2 字符输入流和输出流的read和write方法以字符为基本单位处理数据 intread 字符输入流调用该方法从源中读取一个字符 intread charb 字符输入流调用该方法从源中试图读取b length个字符到字符数组b中 intread charb intoff intlen 字符输入流调用该方法从源中试图读取len个字符并存放到字符数组b中 voidwrite intn 字符输出流调用该方法向文件写入一个字符 voidwrite charb 字符输出流调用该方法向文件写入一个字符数组 voidwrite charb intoff intlength 字符输出流调用该方法把从字符数组中起始于偏移量off处取出的len个字符写到文件 例题12 6 2010 1 10 14 12 4缓冲流 1 BufferedReader和BufferedWriter类创建的对象称作缓冲输入 输出流 二者的源和目的地必须是字符输入流和字符输出流 构造方法 BufferedReader Readerin BufferedWriter Writerout 2 BufferedReader和BufferedWriter类读写文件的方法 readLine BufferedReader流读取文本行write Strings intoff intlen BufferedWriter流把字符串s写到文件中newLine BufferedWriter流向文件写入一个回行符例题12 7 2010 1 10 15 12 5文件对话框 在学习了有关文件输入 输出流之后 就可以使用文件对话框方便地打开和保存文件 例题12 8 2010 1 10 16 12 6随机流 使用RandomAccessFile类来创建一个随机访问文件流 RandomAccessFile类创建的流的指向既可以作为源也可以作为目的地 构造方法 RandomAccessFile Stringname Stringmode RandomAccessFile Filefile Stringmode 相关方法 seek longa 定位RandomAccessFile流的读写位置getFilePointer 获取流的当前读写位置例题12 9 表12 1RandomAccessFile类的常用方法 处理readLine 方法在读取含有非ASCII字符的文件时出现 乱码 现象的方法 1 读取Stringstr in readLine 2 用 iso 8859 1 重新编码byteb str getBytes iso 8859 1 3 使用当前机器的默认编码将字节数组转化为字符串Stringcontent newString b 例题12 10 2010 1 10 17 12 7数组流 1 字节数组流字节数组输入流ByteArrayInputStream和字节数组输出流ByteArrayOutputStream分别使用字节数组作为流的源和目标 ByteArrayInputStream构造方法及常用方法ByteArrayInputStream byte buf ByteArrayInputStream byte buf intoffset intlength publicintread 顺序地从源中读出一个字节publicintread byte b intoff intlen 顺序地从源中读出参数len指定的字节数 ByteArrayOutputStream流构造方法及常用方法ByteArrayOutputStream ByteArrayOutputStream intsize publicvoidwrite intb 顺序地向缓冲区写入一个字节publicvoidwrite byte b intoff intlen 将参数b中指定的len个字节顺序地写入缓冲区publicbyte toByteArray 返回输出流写入到缓冲区的全部字节2 字符数组CharArrayReader和CharArrayWriter类是字符数组流 字符数组流分别使用字符数组作为流的源和目标 例题12 11 2010 1 10 18 12 8数据流 DataInputStream和DataOutputStream类创建的对象称为数据输入流和数据输出流 构造方法DataInputStream InputStreamin 创建的数据输入流指向一个由参数in指定的底层输入流DataOutputStream OutnputStreamout 创建的数据输出流指向一个由参数out指定的底层输出流 表12 2是DataInputStream和DataOutputStream类的常用方法例题12 12 2010 1 10 19 12 9带进度条的输入流 输入流类ProgressMonitorInputStream创建的输入流在读取文件时会弹出一个显示读取速度的进度条 它的构造方法是 ProgressMonitorInputStream Conmponentc Strings InputStream 例题12 13 2010 1 10 20 12 10对象流 ObjectInputStream和ObjectOutputStream类创建的对象称为对象输入流和对象输出流 它的构造方法是 ObjectInputStream InputStreamin ObjectOutputStream OutputStreamout 相关方法 writeObject Objectobj 将一个对象obj写入到一个文件readObject 读取一个对象到程序中 所谓序列化 一个类如果实现了Serializable接口 那么这个类创建的对象就是所谓序列化的对象 例题12 14 2010 1 10 21 12 11序列化与对象克隆 如果一个 复制品 实体的变化不会引起原对象实体发生变化 反之亦然 这样的复制品称为原对象的一个克隆对象或简称克隆 一个对象调用clone 方法就可以获取该对象的克隆对象 对象输入流通过对象的序列化信息来得到当前对象的一个克隆 例题12 15 2010 1 10 22 12 12文件锁 FileLock FileChannel类处理Java提供的文件锁功能 它们分别在java nio和java nio channels包中 输入 输出流读写文件时可以使用文件锁 RondomAccessFile创建的流在读写文件时使用文件锁的步骤如下 1 先使用RondomAccessFile流建立指向文件的流对象 该对象的读写属性必须是rw 例如 RandomAccessFileinput newRandomAccessFile Example java rw 2 nput流调用方法getChannel 获得一个连接到地层文件的FileChannel对象 信道 例如FileChannelchannel input getChannel 3 信道调用tryLock 或lock 方法获得一个FileLock 文件锁 对象 这一过程也称作对文件加锁 例如 FileLocklock channel tryLock 例题12 16 2010 1 10 23 12 13使用Scanner解析文件 使用Scanner类和正则表达式来解析文件 1 使用默认分隔标记解析文件创建Scanner对象 并指向要解析的文件 例如 Filefile newFile hello java Scannersc newScanner file sc将空白作为分隔标记相关方法 next 依次返回file中的单词hasNext 判断file最后一个单词是否已被next 方法返回例题12 172 使用正则表达式作为分隔标记解析文件创建Scanner对象 指向要解析的文件 并使用useDelimiter方法指定正则表达式作为分隔标记 例如 Filefile newFile hello java Scannersc newScanner file sc useDelimiter 正则表达式 sc将正则表达式作为分隔标记相关方法 next 依次返回file中的单词hasNext 判断file
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在区块链技术优化中的应用
- 2026年痰湿质人群健脾祛湿防感法
- 2026年企业文化建设与职业道德融合
- 2026年医疗数据安全培训提升员工意识
- 2026年人工智能时代民办职业教育专业调整
- 2026年结核病密切接触者筛查与管理
- 2026年实验室 5G 与物联网技术融合应用
- 上海立达学院《Android 移动平台开发》2025-2026学年第一学期期末试卷(A卷)
- 上海立信会计金融学院《安装工程计量计价》2025-2026学年第一学期期末试卷(B卷)
- 上海立信会计金融学院《安全防范系统工程》2025-2026学年第一学期期末试卷(A卷)
- 2026年甘肃省平凉市辅警人员招聘考试真题解析含答案
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 中学生面试礼仪培训
- 中风护理中的科研进展
- 四川绵阳科技城发展投资(集团)有限公司招聘笔试题库2026
- 雨课堂学堂在线学堂云《国家安全教育(哈尔滨工业)》单元测试考核答案
- 中信证券行业状况分析报告
- PDCPD材料可行性研究报告
- 药品信用档案管理制度
- 2025-2030中医院行业市场深度分析及竞争格局与投资价值研究报告
- 企业管理 华为会议接待全流程手册SOP
评论
0/150
提交评论