Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流

上传人:sat****105 文档编号:325451976 上传时间:2022-07-18 格式:PPTX 页数:70 大小:1,011.50KB
返回 下载 相关 举报
Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流_第1页
第1页 / 共70页
Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流_第2页
第2页 / 共70页
Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流_第3页
第3页 / 共70页
Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流_第4页
第4页 / 共70页
Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流》由会员分享,可在线阅读,更多相关《Java程序设计任务式教程教学课件(共9单元)模块七-Java的IO流(70页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计任务式教程模块七 I/O流大多数应用程序都需要实现与设备之间的数据传输,例如键盘可以输入数据,显示器可以显示程序的运行结果等。在Java中,将这种通过不同输入输出设备之间的数据传输抽象表述为“流”,程序允许通过流的方式与输入输出设备进行数据传输。本模块主要介绍了File类、输入流与输出流、字节流与字符流、缓冲流等内容。模块介绍思维导图教学大纲能力目标能力目标能够实现文件的读写能够创建、删除和修改文件及目录知识目标知识目标了解输入输出流掌握字节流与字符流掌握缓冲流理解File类掌握File类的主要方法掌握目录的遍历教学大纲学习重点学习重点字节流与字符流读写文件的操作缓冲流File

2、类的主要方法学习难点学习难点字节流与字符流读写文件的操作任务任务7.1 7.1 文本排序程序设计文本排序程序设计任务目标任务目标了解输入与输出流掌握字节流与字符流掌握缓冲流任务任务7.1 7.1 文本排序程序设计文本排序程序设计任务描述任务描述请将文本信息恢复顺序。文本内容如图7-1所示:图7-1 文本信息任务任务7.1 7.1 文本排序程序设计文本排序程序设计知识准备知识准备7 7.1.1.1 1 输入输出流概述输入输出流概述I/O(Input/Output)流,即输入输出流,用来进行输入输出操作,输入也叫做读取数据,输出也叫做作写出数据。I/O流有很多种,按照不同的分类方式,主要可以分为以

3、下2类:(1)根据数据流向不同分为输入流和输出流。(2)根据处理数据类型的不同分为字节流和字符流。Java中的I/O流主要定义在java.io包中,该包下定义了很多类,其中有4个类为流的顶级类,分别为InputStream和OutputStream,Reader和Writer。InputStream和OutPutStream是字节流,而Reader和Writer是字符流;InputStream和Reader是输入流,而OutPutStream和Writer是输出流。如图7-2所示。任务任务7.1 7.1 文本排序程序设计文本排序程序设计图7-2 I/O流的顶层类任务任务7.1 7.1 文本排序

4、程序设计文本排序程序设计7 7.1.1.2 2 字节流字节流1.字节流的概念在计算机中,一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,I/O流中针对字节的输入/输出提供了一系列的流,统称为字节流。字节流是程序中最常用的流。在JDK中,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。便于理解,可以把InputStream和OutputStream比作两根“水管”,如图7-3所示。图7-3中,InputStream被看成一个输入管道,OutputStream被看成一个输出管道,数据通过InputStream从源设备输入到程

5、序,通过OutputStream从程序输出到目标设备,从而实现数据的传输。由此可见,IO流中的输入、输出都是相对于程序而言的。任务任务7.1 7.1 文本排序程序设计文本排序程序设计图7-3 InputStream和OutputStream任务任务7.1 7.1 文本排序程序设计文本排序程序设计在JDK中,InputStream和OutputStream提供了一些列与读写数据相关的方法,接下来了解一下InputStream的常用方法,如表7-1所示表7-1中列举了InputStream的4个常用方法。前3个read()方法都是用来读数据的,分按字节读取和按字节数组读取。在进行I/O流操作时,应

6、该调用close()方法关闭流,从而释放当前I/O流所占的系统资源任务任务7.1 7.1 文本排序程序设计文本排序程序设计表7-1 InputStream常用方法任务任务7.1 7.1 文本排序程序设计文本排序程序设计与InputStream对应的是OutputStream。OutputStream是用于写数据的,因此,OutputStream提供了一些与写数据有关的方法,如表7-2所示。表7-2中列举了OutputStream的4个常用方法。前三个write()方法都是用来写数据的,分按字节读取和按字节数组写入。flush()方法用来将当前输出流缓冲区(通常是字节数组)中的数据强制写入目标设

7、备,此过程称为刷新。close()方法是用来关闭流并释放与当前IO流相关的系统资源任务任务7.1 7.1 文本排序程序设计文本排序程序设计表7-2 OutputStream常用方法任务任务7.1 7.1 文本排序程序设计文本排序程序设计InputStream和OutputStream这两个类虽然提供了一系列和读写数据有关的方法,但是这两个类是抽象类,不能被实例化。因此,针对不同的功能,InputStream和OutputStream提供了不同的子类,这些子类形成了一个体系结构,如图7-4和图7-5所示。图7-4 InputStream的子类任务任务7.1 7.1 文本排序程序设计文本排序程序设

8、计图7-5 OutputStream的子类任务任务7.1 7.1 文本排序程序设计文本排序程序设计2.字节流读写文件针对文件的读写操作,JDK专门提供了FileInputStream和FileOutputStream两个类,它们分别为InputStream和OutputStream的子类。1)FileInputStream类:FileInputStream 类是文件输入流,从文件中读取字节。构造方法:(1)FileInputStream(Filefile):通过打开与实际文件的连接来创建一个 FileInputStream,该文件由文件系统中的 File对象 file命名。(2)FileInp

9、utStream(Stringname):通过打开与实际文件的连接来创建一个 FileInputStream,该文件由文件系统中的路径名 name命名。任务任务7.1 7.1 文本排序程序设计文本排序程序设计publicclassFileInputStreamConstructorthrowsIOExceptionpublicstaticvoidmain(Stringargs)/使用File对象创建流对象Filefile=newFile(a.txt);FileInputStreamfos=newFileInputStream(file);/使用文件名称创建流对象FileInputStreamf

10、os=newFileInputStream(b.txt);任务任务7.1 7.1 文本排序程序设计文本排序程序设计读取字节数据读取字节数据读读取取字字节节:read方法,每次可以读取一个字节的数据,提升为int类型,读取到文件末尾,返回-1。注意:虽然读取了一个字节,但是会自动提升为int类型。流操作完毕后,必须释放系统资源,调用close方法。任务任务7.1 7.1 文本排序程序设计文本排序程序设计importjava.io.*;publicclassExample7_1publicstaticvoidmain(Stringargs)Filef=newFile(D:a.txt);/开始输入F

11、ileInputStreamf1=newFileInputStream(f);inti;i=f1.read();System.out.println(i);i=f1.read();System.out.println(i);i=f1.read();System.out.println(i);i=f1.read();System.out.println(i);i=f1.read();System.out.println(i);/*while(i=f1.read()!=-1)System.out.println(i);*/例例7-1 Example7_1.java7-1 Example7_1.ja

12、va任务任务7.1 7.1 文本排序程序设计文本排序程序设计使用字节数组读取:read(byte b),每次读取b的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回-1importjava.io.*;publicclassExample7_2publicstaticvoidmain(Stringargs)throwsIOException/使用文件名称创建流对象FileInputStreamfis=newFileInputStream(D:/a.txt);/定义变量,作为有效个数intlen;/定义字节数组,作为装字节数据的容器byteb=newbyte2;/循环读取while

13、(len=fis.read(b)!=-1)/每次读取后,把数组的有效字节部分,变成字符串打印System.out.println(newString(b,0,len);/len每次读取的有效字节个数/关闭资源fis.close();例例7-2 Example7_2.java7-2 Example7_2.java任务任务7.1 7.1 文本排序程序设计文本排序程序设计2)FileOutputStream类FileOutputStream 类是文件输出流,用于将数据写出到文件。构造方法1.publicFileOutputStream(File file):创建文件输出流以写入由指定的 File对象

14、表示的文件。2.publicFileOutputStream(String name):创建文件输出流以指定的名称写入文件。当创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文件,会清空这个文件的数据。publicclassFileOutputStreamConstructorthrowsIOExceptionpublicstaticvoidmain(Stringargs)/使用File对象创建流对象Filefile=newFile(a.txt);FileOutputStreamfos=newFileOutputStream(file);/使用文件名

15、称创建流对象FileOutputStreamfos=newFileOutputStream(b.txt);任务任务7.1 7.1 文本排序程序设计文本排序程序设计写出字节数据写出字节数据写出字节:写出字节:write(intb)方法,每次可以写出一个字节数据。importjava.io.*;publicclassExample7_3publicstaticvoidmain(Stringargs)throwsIOException/使用文件名称创建流对象FileOutputStreamfos=newFileOutputStream(D:/a.txt);/写出数据fos.write(97);fos

16、.write(98);fos.write(99);/关闭资源fos.close();例例7-3 Example7_3.java7-3 Example7_3.java任务任务7.1 7.1 文本排序程序设计文本排序程序设计写出字节数组写出字节数组:write(byteb),每次可以写出数组中的数据。importjava.io.*;publicclassExample7_4publicstaticvoidmain(Stringargs)throwsIOException/使用文件名称创建流对象FileOutputStreamfos=newFileOutputStream(D:/a.txt);/字符串转换为字节数组byteb=你好.getBytes();/写出字节数组数据fos.write(b);/关闭资源fos.close();例例7-4 Example7_4.java7-4 Example7_4.java任务任务7.1 7.1 文本排序程序设计文本排序程序设计写写出出指指定定长长度度字字节节数数组组:write(byte b,int off,int len),每次写出从off索引开始,l

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

最新文档


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

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