《java的输入输出流》ppt课件

上传人:tian****1990 文档编号:74934115 上传时间:2019-01-30 格式:PPT 页数:45 大小:624.81KB
返回 下载 相关 举报
《java的输入输出流》ppt课件_第1页
第1页 / 共45页
《java的输入输出流》ppt课件_第2页
第2页 / 共45页
《java的输入输出流》ppt课件_第3页
第3页 / 共45页
《java的输入输出流》ppt课件_第4页
第4页 / 共45页
《java的输入输出流》ppt课件_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《《java的输入输出流》ppt课件》由会员分享,可在线阅读,更多相关《《java的输入输出流》ppt课件(45页珍藏版)》请在金锄头文库上搜索。

1、Lecture 11 Input/Output,Gao Weijun Computer Science Department GanSu University of Technology,Overview of I/O Streams,IO 流介绍,IO流:用于处理设备上的数据。 设备:硬盘,内存,键盘录入。 IO有具体的分类: 1,根据处理的数据类型不同:字节流和字符流。 2,根据流向不同:输入流和输出流。,Overview of I/O Streams,Java.io,IO 流对象继承关系,其他常用与流有关的类,IO 流介绍,字节流和字符流的区别: 1,字节流读取的时候,读到一个字节就返回

2、一个字节。 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在 UTF-8 码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。 2,字节流可以处理所有类型数据,如图片,mp3,avi。 而字符流只能处理字符数据。 结论:只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都用字节流。,IO 流介绍,IO的体系: 所具备的基本功能就有两个:读 和 写。 1,字节流 InputStream(读),OutputStream(写)。 2,字符流: Reader(读),Writer(写)。,IO 流介绍,字符流: Reader |-InputStreamReader |-Fil

3、eReader:专门用于处理文件的字符读取 流对象。 Writer |-OutputStreamWriter |-FileWriter:专门用于处理文件的字符写入流 对象。,IO 流介绍,字符流: Reader中的常见的方法: 1,int read(): 读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1. 2,int read(char): 将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里 装的元素的个数。如果读到流的末尾,返回-1. 3,close(): 读取字符其实用的是 window系统的功能,就希望使用完毕后,进行资源的释放。,IO 流介绍,字符流:

4、 Writer中的常见的方法: 1,write(ch): 将一个字符写入到流中。 2,write(char): 将一个字符数组写入到流中。 3,write(String): 将一个字符串写入到流中。 4,flush():刷新流,将流中的数据刷新到目的地 中,流还存在。 5,close():关闭资源:在关闭前会先调用 flush(), 刷新流中的数据去目的地。然流关闭。,IO 流介绍,FileWriter: 该类没有特有的方法。只有自己的构造函数。 该类特点在于, 1,用于处理文本文件。 2,该类中有默认的编码表, 3,该类中有临时缓冲。,IO 流介绍,FileWriter: 构造函数据 Fil

5、eWriter(String filename): 该构造函数做了什么事情呢? 1,调用系统资源。 2,在指定位置,创建一个文件。 注意:如果该文件已存在,将会被覆盖。 FileWriter(String filename,boolean append): 该构造函数:当传入的 boolean类型值为 true 时,会在指定文件末尾处进行数据的续写。,IO 流介绍,FileReader: 1,用于读取文本文件的流对象。 2,用于关联文本文件。 构造函数:FileReader(String filename); 在读取流对象初始化的时候,必须要指定一个被读取的文件。如果该文件不存在会发生 Fil

6、eNotFoundException.,IO 流介绍,几点说明: 对于读取或者写入流对象的构造函数,以及读写方 法,还有刷Exception或其子类。所以都要进行处理。或者 throws抛出,或者try catch处理。 当指定绝对路径时,定义目录分隔符有两种方式: 1,反斜线 但是一定要写两个。 new FileWriter(“c:demo.txt“); 2,斜线 / 写一个即可。 new FileWriter(“c:/demo.txt“);,IO 流介绍,字符流的缓冲区: 对应的对象: BufferedWriter: 特有方法: newLine():跨平台的换行符。 BufferedRea

7、der: 特有方法: readLine():一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。当读到末尾时,返回 null。,IO 流介绍,字符流的缓冲区: 代码上的体现: 写入缓冲区对象。 /建立缓冲区对象必须把流对象作为参数传递给缓冲区的构造函数。 BufferedWriter bufw = new BufferedWriter(new FileWriter(“buf.txt“); bufw.write(“abce“);/将数据写入到了缓冲区。 bufw.flush();/对缓冲区的数据进行刷新。将数据刷到目的地中。 bufw.close();/关闭缓冲区,其实关闭的是被包装在

8、内部的流对象。,IO 流介绍,字符流的缓冲区: 代码上的体现: 读取缓冲区对象 BufferedReader bufr = new BufferedReader(new FileReader(“buf.txt“); String line = null;,IO 流介绍,字节流: 抽象基类:InputStream,OutputStream。 字节流可以操作任何数据。 注意:字符流使用的数组是字符数组。char chs 字节流使用的数组是字节数组。byte bt,IO 流介绍,字节流: FileOutputStream fos = new FileOutputStream(“a.txt“); fo

9、s.write(“abcde“);/直接将数据写入到了目的地。 fos.close();/只关闭资源。 FileInputStream fis = new FileInputStream(“a.txt“);,IO 流介绍,需求:copy一个图片 BufferedInputStream bufis = new BufferedInputStream(new FileInputStream(“1.jpg“); BufferedOutputStream bufos = new BufferedOutputStream(new FileOutptStream(“2.jpg“); int by = 0;

10、 while(by=bufis.read()!=-1) bufos.write(by); bufos.close(); bufis.close();,IO 流介绍,转换流: 特点: 1,是字节流和字符流之间的桥梁。 2,该流对象中可以对读取到的字节数据进行指定编码表的编码转换。 什么时候使用呢? 1,当字节和字符之间有转换动作时。 2,流操作的数据需要进行编码表的指定时。,IO 流介绍,转换流: 具体的对象体现: 1,InputStreamReader:字节到字符的桥梁。 2,OutputStreamWriter:字符到字节的桥梁。,IO 流介绍,转换流: 构造函数: InputStreamR

11、eader(InputStream):通过该构造函数初始化,使用的是本系统默认的编码表 GBK。 InputStreamReader(InputStream,String charSet):通过该构造函数初始化,可以指定编码表。 OutputStreamWriter(OutputStream):通过该构造函数初始化,使用的是本系统默认的编 码表 GBK。 OutputStreamWriter(OutputStream,String charSet):通过该构造函数初始化,可以指定编码表。,IO 流介绍,转换流: 操作文件的字符流对象是转换流的子类。 Reader |-InputStreamRe

12、ader |-FileReader Writer |-OutputStreamWriter |-FileWriter,IO 流介绍,流操作的基本规律: 1,明确数据源和数据汇(数据目的)。 其实是为了明确输入流还是输出流。 2,明确操作的数据是否是纯文本数据。 其实是为了明确字符流还是字节流。 数据源: 键盘 System.in,硬盘File 开头的流对象,内存(数组)。 数据汇: 控制台 System.out,硬盘 File开头的流对象,内存 (数组)。,IO 流介绍,File 类: 该类的出现是对文件系统的中的文件以及文件夹进行对象的封装。可以通过对象的思想来操作文件以及文件夹。 1,构造

13、函数: File(String filename):将一个字符串路径(相对或者绝对)封装成 File 对象,该路径是可 存在的,也可以是不存在。 File(String parent,String child); File(File parent,String child);,IO 流介绍,File 类: 2,常见方法: 创建: boolean createNewFile()throws IOException:创建文件,如果被创建的文件已经存在,则不创建。 boolean mkdir(): 创建文件夹。 boolean mkdirs(): 创建多级文件夹。,IO 流介绍,File 类: 删除

14、: boolean delete():可用于删除文件或者文件夹。 注意: 对于文件夹只能删除不带内容的空文件夹, 对于带有内容的文件夹,不可以直接删除,必须要从里往外删除。 void deleteOnExit(): 删除动作交给系统完成。无论是否反生异常,系统在退出时执行删除动作。,IO 流介绍,File 类: 判断: boolean canExecute(): boolean canWrite(): boolean canRead(); boolean exists():判断文件或者文件夹是否存在。 boolean isFile(): 判断 File 对象中封装的是否是文件。 boolean

15、 isDirectory():判断 File 对象中封装的是否是文件夹。 boolean isHidden():判断文件或者文件夹是否隐藏。在获取硬盘文件或者文件夹时,对于系统目录中的文件,java是无法访问的,所以在遍历,可以避免遍历隐藏文件。,IO 流介绍,File 类: 获取: getName():获取文件或者文件夹的名称。 getPath():File 对象中封装的路径是什么,获取的就是什么。 getAbsolutePath():无论 File 对象中封装的路径是什么,获取的都是绝对路径。 getParent(): 获取File 对象封装文件或者文件夹的父目录。 注意:如果封装的是相对

16、路径,那么返回的是 null. long length():获取文件大小。 long lastModified():获取文件或者文件最后一次修改的时间。,IO 流介绍,File 类: 获取: static File listRoots():获取的是被系统中有效的盘符。 String list():获取指定目录下当前的文件以及文件夹名称。 String list(Filenamefilter): 可以根据指定的过滤器,过滤后的文件及文件夹名称。 File listFiles():获取指定目录下的文件以及文件夹对象。,IO 流介绍,File 类: 重命名: renameTo(File): 例如: File f1 = new File(“c:a.txt“); File f2 = new File(“c:b.txt“); f1.renameTo(f2);/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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