




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十四章第十四章 I OI O File File 类的使用类的使用 java io Filejava io File 类类 代表硬盘上的一个文件或文件夹 代表并不一定存在 javajava 中文件路径的表示方式中文件路径的表示方式 Windows 中表示 c suns txt Java 中表示 c suns txt c sun txt FileFile 类的构造方法类的构造方法 构造方法 File 类没有无参构造方法 File String pathname 主要 File String parent String child Fille File parent String child FileFile 类的常用方法类的常用方法 createNewFile 文件不存在时才会创建 mkdir mrdirs 用于创建目录 mkdir 只能创建一级目录 mrdirs 可以 创建多级目录 delete 删除当前文件或文件夹 立即删除 deleteOnExit 不会立即删除文件 会等虚拟机运行完后删除 exists 判断目录是否存在 isFile 判断是否代表文件 返回值都是 boolean 值 isDirectory 判断是否为目录 getPath 获得文件路径 getName 获得文件名字 getparent 获得目录路径 getAbsolutePath 绝对路径 list 只能用于目录 获得子目录和文件名字 例 File f0 new File abc txt f0 createNewFile File f1 new File abc bac f1 mkdirs File f2 new File cde bcd sun txt 创建一级目录 cde 及子目录 bcd 内的文件 sun System out println f2 getPath cde bcd sun txt System out println f2 getParent cde bcd System out println f2 getName sun txt System out println f2 getAbsolutePath 获得 f2 的绝对路径 File f5 new File c 创建目录 System out println f5 isDirectory true 判断对象是否为目录 I O I O I OI O 概念概念 I input O output 是针对 java 虚拟机 流的概念流的概念 用来传输数据的对象 生活例子 电线 输水管 I OI O 流的分类流的分类 按照流的方向分类按照流的方向分类 输入流 可以从其中读入一个字节序列的对象称为输入流 输出流 可以向其中写入一个字节序列的对象称为输出流 按照数据单位分类按照数据单位分类 字节流 最底层 字符流 专门读文本文件 按照传输数据功能分类按照传输数据功能分类 节点流 过滤流 字节流字节流 传输的数据单位是字节 也意味着字节流能够处理任何一种文件 字节流的组成字节流的组成 InputStream 父类 抽象类 FileInputStream 子类 OutputStream 父类 抽象类 FileOutputStream 子类 FileInputStreamFileInputStream 常用方法常用方法 FileInputStream String filename 会有检查异常 需处理 FileInputStream File file close 关闭流 int read 字节返回 int 值 遇到输入源结尾时 返回 1 例 public class Test public static void main String args throws Exception InputStream is new FileInputStream ex01 txt int len 0 while len is read 1 char c char len System out println c intint read byte read byte bs bs 会将读取的数据填充到数组里去 public class Test public static void main String args throws Exception InputStream fin new FileInputStream ex01 txt byte bs new byte 6 int len 0 while len fin read bs 1 for int i 0 i len i 遍历打印 System out print char bs i System out println fin close intint read byte read byte bs intbs int off intoff int len len int off 偏移量 int len 存储数组长度 FileOutputStreamFileOutputStream 常用方法常用方法 FileOutputStream String path 会有检查异常 需处理 FileOutputStream File file close void wrtte int v void write byte bs void write byte bs int off int len 例 public class Test public static void main String args throws Exception String hello Hello World byte bs hello getBytes FileOutputStream fout new FileOutputStream test txt fout write bs 将数组 bs 中的内容写入文件 test 中 fout close 在原有文件上追加内容 FileOutputStream String path boolean append FileOutputStream File file boolean append public class Test public static void main String args throws Exception String hello Hello World byte bs hello getBytes FileOutputStream fout new FileOutputStream test txt true fout write bs fout close 异常处理异常处理 public static void main String args FileInputStream fin null try fin new FileInputStream abc txt byte bs new byte 6 int len 0 while len fin read bs 1 for int i 0 i len i System out print char bs i System out println catch Exception e e printStackTrace finally if fin null try fin close catch IOException e e printStackTrace 过滤流过滤流 Data Stream DataInputStream readXxx DataOutputStream writeXxx 过滤流的开发步骤过滤流的开发步骤 创建节点流 基于节点流创建过滤流 读 写数据 关闭外层流 创建节点流 FileOutputStream fout new FileOutputStream pi dat 封装过滤流 DataOutputStream dout new DataOutputStream fout 写数据 dout writeDouble 3 14 关闭外层流 dout close 创建节点流 FileInputStream fin new FileInputStream pi dat 封装过滤流 DataInputStream din new DataInputStream fin 读数据 double pi din readDouble 关闭外层流 din close BufferedBuffered Stream Stream 增加了一个缓冲区的功能增加了一个缓冲区的功能 BufferedInputStream BufferedOutputStream 例 String data Hello World byte bs data getBytes FileOutputStream fout new FileOutputStream test txt BufferedOutputStream bout new BufferedOutputStream fout bout write bs bout close 若将这一行注释掉 文件中将没有内容 bout flush 等同 ObjectStreamObjectStream 增强了读写对象的功能 ObjectInputStream ObjectOutputStream ObjectStreamObjectStream 特点特点 writeObject readObject 对象序列化对象序列化 把对象放在流上进行传输的过程过程 若这个对象若这个对象可以可以在流上进行传输叫做在流上进行传输叫做可序列化的对象可序列化的对象 若想让这个对象可以在流上进行传输要实现一个接口 java io Serializeble 接口 没有方法来实现接口叫做标示接口 class Student implements Serializable String name transient int age public Student String name int age this name name this age age public class TestSerializable public static void main String args throws Exception Student stu1 new Student tom 18 Student stu2 new Student jerry 18 FileOutputStream fout new FileOutputStream stu dat ObjectOutputStream oout new ObjectOutputStream fout oout writeObject stu1 oout writeObject stu2 oout close FileInputStream fin new FileInputStream stu dat ObjectInputStream oin new ObjectInputStream fin Student s1 Student oin readObject Student s2 Student oin readObject oin close System out println s1 name s1 age System out println s2 name s2 age transienttransient 关键字关键字 修饰的是属性 若这个修饰符修饰了属性 属性不会序列化 序列化时注意事项序列化时注意事项 不要使用追加的方式写对象 如果一个对象的属性又是一个对象 则要求这个属性对象也实现 Serializeble 接口 String 和八种基本类型都能序列化 字符流字符流 字符编码字符编码 数字转文字 解码 文字转数字 编码 常见的编码规范 字符集 常见的编码规范 字符集 ASCII ISO 8859 1 GBK UTF 8 通用的编码 乱码问题乱码问题 编码方式的不一致 例 String oname 测试 Byte bs oname getBytes gbk String dname new String bs GBK System out println dname 测试 所有的编码都与 ASCII 兼容 字符流的组成字符流的组成 Reader 父类 抽象类 FileReader 子类 Writer 父类 抽象类 FileWriter 子类 FileReader 不能更改编码方式 FileReader String fileName close intread char cbuf FileWriter 不能更改编码方式 FileWriter String fileName close write String value InputStreamReaderInputStreamReader 和和 OutputStreamWriterOutputStreamWriter 特点 可以把一个字节流转换成一个字符流 桥转换 在转换时可以执行编码方式 InputStreamReaderInputStreamReader InputStreamReader InputStream is InputStreamReader InputStream is String charSet intread char cbuf OutputStreamWriterOutputStreamWriter OutputStreamWriter OutputStream is OutputStreamWriter OutputStream is String charSet write String value 例 InputStream is new FileInputStream oracle txt InputStreamReader ir new InputStreamReader is char value new char 1024 int len 0 while len ir read value 1 for int i 0 i len i char c value i System out print c System out println BufferedReaderBufferedReader 字符过滤流 提供了缓冲功能 可以一行一行的读取内容 public String readLine 例 InputStream is new FileInputStream oracle txt InputStreamReader ir new InputStreamReader is BufferedReader br new BufferedRead
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025春季内蒙古包头市中心医院引进高层次和紧缺急需人才招聘29人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025年疾病预防控制及防疫服务项目发展计划
- 广本安全驾驶培训北京课件
- 2025年4月杭州市采荷中学编外教师招聘3人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年嘉兴海宁市中心医院公开招聘高层次急需卫技人员4人考前自测高频考点模拟试题及完整答案详解1套
- 2025年河北唐山市丰润区选聘第二批事业编制医疗技术人员13名考前自测高频考点模拟试题附答案详解(完整版)
- 2025广西城轨工程建设有限公司招聘20人模拟试卷完整答案详解
- 2025年河北邯郸市教育局春季市直学校选聘博硕人才300名考前自测高频考点模拟试题及答案详解(夺冠)
- HO-PEG-NH-Fmoc-MW-2000-生命科学试剂-MCE
- Growth-Hormone-22-Arg-13C6-15N4-Lys-13C6-15N2-生命科学试剂-MCE
- 规范书写汉字(实用硬笔)课件
- 马克思主义政治经济学第2章-货币课件
- 管理核心五任务版权课程课件
- 学术规范与论文写作讲述课件
- 七年级数学学习·探究·诊断上册
- 实验室内质控记录表格完整
- 基层医疗机构抗菌药物合理使用
- 肾动脉狭窄介入治疗PPT课件(PPT 30页)
- 10kV架空线路设计PPT课件(PPT 69页)
- Q∕GDW 12174-2021 智能量测开关技术规范
- 幼儿园绘本:《小宣传员》 红色故事
评论
0/150
提交评论