Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件

上传人:E**** 文档编号:89156246 上传时间:2019-05-19 格式:PPT 页数:52 大小:2.32MB
返回 下载 相关 举报
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件_第1页
第1页 / 共52页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件_第2页
第2页 / 共52页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件_第3页
第3页 / 共52页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件_第4页
第4页 / 共52页
Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件》由会员分享,可在线阅读,更多相关《Java程序设计项目教程 教学课件 ppt 作者 张群哲 课件 第7章流与文件(52页珍藏版)》请在金锄头文库上搜索。

1、第7章流与文件,主讲教师:张群哲,7.1 流与文件的基本操作,项目23 查询文件属性 学习目标 理解输入输出流的概念及分类 掌握Java文件管理的方法 项目24 复制文件 学习目标 掌握利用字节流进行文件顺序访问 掌握利用字符流进行文件顺序访问,项目23 查询文件属性,项目任务: 查询指定文件的属性 源程序及执行结果 技术要点 Java通过File(文件)类来实现对不同系统平台下各种文件的操作 File类定义了处理由本地文件系统所维护文件的具体方法,该方法独立于平台。,1.Java的File(文件)类,(1)单参数的构造方法: 以路径dirPath创建一个File对象 public File(

2、String dirPath); dirPath可以是一个路径名,也可以是一个包含路径的文件名 可能抛出NullPointerException。 示例 File p1 = new File(“./newdir”);/目录被作为特殊文件 File f 2= new File(“./newdir/ch81.java”);,1.Java的File(文件)类,(2)双参数的构造方法 以路径名dirPath和文件名fileName创建一个File对象 public File(String dirPath,String fileName); 先定义一个表示路径的File对象dirObj,再以dirObj

3、、文件名fileName创建一个File对象。 public File(File dirObj,String fileName); 示例 File p1 = new File(“./newdir”); File f1 = new File(p1,“newfile.txt”);/双参数:File对象+串 File f2 = new File(“./newdir”,“ch81.java”);/双参数:串+串,2. File类对象中与文件相关的的重要方法, 与文件名相关的方法 String getName() 获得文件名; String getPath() 获取文件路径; String getAbs

4、olutePath() 获取文件绝对路径; String getParent() 获取文件父目录名称; boolean renameTo(File newName) 文件改名,成功返回true,否则返回false; boolean delete() 删除对象指向的文件,成功返回true,否则返回false boolean createNewFile() 以对象路径名创建文件,失败抛出IOException, 文件对象的测定方法 boolean exists() 文件对象是否存在 boolean canWrite() 文件对象是否可写 boolean canRead() 文件对象是否可读 boo

5、lean setReadOnly() 将所引用的文件设为只读 boolean isFile() 文件对象是否是文件 boolean isHidden() 文件对象是否是隐藏文件 boolean isAbsolute() 文件对象是否是绝对路径 常用的获取文件信息方法 long lastModified() 获取文件最后修改时间 long length() 获取文件长度。,2. File类对象中与文件相关的的重要方法,项目23 查询文件属性,f1.exists(),f2.exists(),f1.canRead(),f1.canWrite(),f1.isFile(),f1.isDirectory(

6、),f1.isHidden(),f1,f2,项目23 查询文件属性 【应用拓展】,File类对象中与目录相关的的重要方法 boolean isDirectory() 文件对象是否是目录 boolean mkdir() 以对象路径名创建目录,操作成功返回true boolean mkdirs() 以对象路径名创建目录,操作成功返回true String list() 返回目录中的文件名和目录名 示例程序: 在./newdir目录下如下目录结构 参考源程序及执行结果,项目24 复制文件,项目任务: 将文件“file1.txt”复制到同一目录下,命名为“file2.txt“。 源程序及执行结果 技术

7、要点 Java程序通过流(stream)操作类与外界交换数据信息。 流分为字节流(InputStream,Outstream)、字符流(Reader,Writer)、随机文件流(RandomAccessFile) Java还可以将字节流或字符流加工成更复杂的数据并利用相对应的流进行输入输出操作。,项目24 复制文件,学习目标 理解流的概念 了解java.io包中主要的数据流类(字节流、字符流、随机文件流)及各流类之间的关系 掌握FileInputStream、FileOutputStream、FileReader、FileWriter的构造方法及读写方法 能够结合API开发人员文档的帮助,使用

8、不同的流类来编写文件输入输出程序,7.1 流与文件的基本操作 项目24 复制文件,Java通过java.io包提供独立于设备和平台的流(stream)操作类 “数据流”:数据通信通道 使用流的关键是隐蔽实际输入与输出设备,内存,文件,文件输入流 (FileInputStream),文件输出流 (FileOutputStream),图1 简单输入输出流,流的概念,大多数应用程序都需要与外部设备进行数据交换,最常见的外部设备包含磁盘,网络,键盘和显示器等。IO就是指应用程序对这些设备的数据输入和输出 在Java中,我们将这些输入输出的数据都看作数据流。即一串连续不断的数据的集合,就像水管里的水流。

9、 这样做有什么好处? 屏蔽了数据源与数据宿的多样性与复杂性,给程序提供了一个统一的操作界面和操作流程。,输入输出流的基本概念,输入流:读取数据时与数据源之间建立的数据通道; 输出流:输出数据时与数据宿(数据槽)之间建立的数据通道。,输出流,输入流,注意:输入和输出是相对于应用程序而言的。,如果我们要将文件A的内容写入文件B,那么要读取文件A的内容和写入文件B时,我们分别需要建立什么流?,流的分类,按功能划分: 输入流 输出流 按流中的数据类型划分: 字节流:以字节为传输单位 字符流:以字符为传输单位,特别用于文本数据 按建立方式和工作原理划分: 节点流:程序与输入源或输出宿之间直接建立的流 过

10、滤流:以某一个节点流作为流的来源,并对其进行一些加工处理的流。能有效改善输入/输出操作,输入输出类,流,输入流,输出流,数据输入,数据输出,将待处理数据送入程序进行处理,把处理结果从程序送到输出设备、磁盘或网络,字节流,字符流,InputStream,OutputStream,Reader,Writer,以字节为处理单位或面向字节,以字符为处理单位或面向字符,RandomAccessFile,按功能分,按结构分,字节输入流类层次,向另一个输入流添加“推回”或“取消读取”一个字节的功能,提供跟踪当前行号的附加功能,基本流类,字节流 输入字节流:InputStream 输出字节流:OutputSt

11、ream 字符流 输入字符流:Reader 输出字符流:Writer 以上四个基本流类都是抽象类,只是为具体其子类规定要实现的方法。 由其具体子类负责创建与各种数据源或数据宿的数据流。,字节输入流类的方法, available(): 返回流中能立即读取的字节数 close():关闭流。 mark():标记流中位置。 markSupported():是否支持标记操作。 read():从流中读取数据。 public int read():读流中一个字节,若流结束则返回-1 public int read(byte b ):从流中读字节填满字节数组b,返回所读字节数,若流结束则返回-1。 publi

12、c int read(byte b ,int off, int len):从流中读字节填入boff开始处,返回所读字节数,若流结束则返回-1。 reset():复位流中标记的位置。 skip():跳过流中若干字节。,字节输出流类层次,项目24 复制文件 字节输出流类的重要方法, close() 关闭流。 flush() 将其余数据刷新到流中。 write() 将数据写到流中。 public void write(int c) 将整数数据的低字节写到输出流 public void write(byte c ) 将字节数组b 中的数据写到输出流 public abstract void write

13、(byte ,int off, int len) 将字节数组b中从off开始的len个字节数据写到输出流,字符输入流类层次,字符输出流类层次,7.2 文件的随机访问 项目25 随机读/写文件,项目任务 建立随机读写文件rdfile.txt,向其中写入各种类型的数据,然后读取文件数据并在屏幕显示。 学习目标 掌握读写随机访问文件方法 了解文件指针及相关方法,随机访问文件类RandomAccessFile,作用 可在文件的不同位置进行操作 对一个文件进行又读又写的操作 类的定义 RandomAccessFile类直接继承于Object,但由于实现了DataInput和DataOutput接口而与其

14、他实现这一接口的类有了相似的readInt()、writeFloat()等简单数据的读写方法。 public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable,建立随机访问文件流对象,(1)RandomAccessFile(File fi,String mode) 以文件对象fi建立随机访问文件对象。 (2)RandomAccessFile(String filename,String mode) 以文件名filename建立随机访问文件对象 mode为访问文件的方式 “r”:文件

15、只读,对该对象的任何写操作都将抛出IOException异常 “rw”:文件可读可写 如果文件不存在,将创建该文件 若对象为目录名,将抛出IOException异常,(1)public int read() 从文件读取并返回一个字节,当读取文件末尾时返回-1 (2)public int read(byte b) 从文件读取字节流到b,返回被放到b中的字节数,当读取文件末尾时返回-1。 (3)public int read(byte b,int start,int size) 从文件读取size个字节放到b从start开始的位置,返回被放到b中的字节数,当读取文件末尾时返回-1。,读随机访问文件

16、方法,写随机访问文件方法,(1)public void write(int i) 将整数i的低位字节写到文件中。 (2)public void write(byte b) 将字节数组b的内容写到文件中。 (3)public void write(byte b,int start,int size) 将字节数组b从start开始的size个字节的内容写到文件中,项目25 随机读/写文件【应用拓展】,项目任务 把若干个32位的整数写到一个名为“temp.txt”的文件中,然后利用文件指针操作的seek方法,以相反的顺序再读取这些数据。 文件指针 指针所指位置就是下次读写的起始位置。 默认情况下,新打开的文件指针指向文件头位置。,文件指针及相关方法,这些方法可抛出IOException异常。 (1)public long length() :返回以字节为单位的文件长度。 (2)public long get

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号