Java语言程序设计-输入输出处理.ppt
《Java语言程序设计-输入输出处理.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计-输入输出处理.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 JavaJava程序设计程序设计 主讲教师:周立波主讲教师:周立波 第第7章章 输入输入/输出处理输出处理7.1 输入输入/输出基础输出基础 7.1.1 输入输入/输出概述输出概述 在在Java类库中,类库中,IO部分包含:标准输入部分包含:标准输入/输输出,文件的操作,网络上的数据流,字符串流,出,文件的操作,网络上的数据流,字符串流,对象流,管道流,对象流,管道流,zip文件流等。文件流等。7.1.2 流的概念流的概念 1、流的概念、流的概念 2、输入流与输出流、输入流与输出流 输出流:将数据资源从应用程序传递到外设、输出流:将数据资源从应用程序传递到外设、外存等的流,称为输出流(外存等
2、的流,称为输出流(OutputStream)输入流:将数据资源从外设或外存传递到应用程输入流:将数据资源从外设或外存传递到应用程序的流称为输入流序的流称为输入流。(。(InputStream)3.字节流与字符流字节流与字符流 按照处理对象的不同,又可将流分成字节流和按照处理对象的不同,又可将流分成字节流和字符流两种。字符流两种。字节流字节流(byte stream):):为处理字节的输入为处理字节的输入和输出提供了方便的方法。和输出提供了方便的方法。字符流字符流(character stream):):为字符的输为字符的输入和输出处理提供了方便。入和输出处理提供了方便。InputStream类
3、和类和OutputStream类本身属类本身属于字节流的范围。相对应的字符流在于字节流的范围。相对应的字符流在JavaJava输入输入/输出类库中有两个抽象类:输出类库中有两个抽象类:Reader和和Writer Java Java中中I/OI/O处理的类库层次处理的类库层次 综合考虑综合考虑“输入流输入流/输出流输出流”和和“字节流字节流/字符字符流流”不同的分类方法,不同的分类方法,JavaJava的流可以由四个抽象的流可以由四个抽象类来表示:类来表示:InputStream,OutputStream,Reader,Writer。JavaJava中中其他多种多样变化的流均是由它们派生的其他
4、多种多样变化的流均是由它们派生的.1.InputStream类类 1)InputStream类的方法类的方法 (1)三个基本的三个基本的read()方法方法 int read();int read(byte);int read(byte,int off,int len);(2)其他方法其他方法void close():完成流操作后,使用该方法关闭流。完成流操作后,使用该方法关闭流。int available():报告立刻可以从流中读取的字节数。报告立刻可以从流中读取的字节数。skip(long):丢弃流中制定数目的字节。丢弃流中制定数目的字节。boolean markSupported();v
5、oid reset(int);Void mark(int);这三个方法用于支持流的这三个方法用于支持流的“回放回放”(回读)操作。(回读)操作。2)InputStream类的派生类类的派生类 FileInputStream:用于文件系统的输入。用于文件系统的输入。PipeInputStream:用于进行管道方式的输入。用于进行管道方式的输入。FilterInputStream:过滤流的接口。过滤流的接口。2.OutputStream类类 1)OutputStream类的方法介绍类的方法介绍 (1)三个基本的)三个基本的write()方法方法 void write(int);void write
6、(byte);void write(byte,int,int);(2)其他方法)其他方法 void close():完成写操作后,关闭流的方法。完成写操作后,关闭流的方法。void flush():该方法允许强制执行写操作。该方法允许强制执行写操作。2)OutputStream类的派生类类的派生类FileOutputStream:用于文件系统的输出。用于文件系统的输出。PipedOutputStream:用于管道方式的输出。用于管道方式的输出。FilterOutputStream:为过滤流提供了统一的接口,为过滤流提供了统一的接口,使得在数据输出时进行数据处理。使得在数据输出时进行数据处理。B
7、yteArrayOutputStream:用于向内存写数据。用于向内存写数据。ObjectOutputStream:用于对象操作序列化的输出用于对象操作序列化的输出流类。流类。BufferedOutputStream:在进行数据写出时将数据在进行数据写出时将数据保存在数据缓冲区,以提高写出速度。保存在数据缓冲区,以提高写出速度。3.Reader类类 Reader类是基于字符流处理的输入流类。类是基于字符流处理的输入流类。4.Writer类类 Writer类是基于字符流处理的输出流类。类是基于字符流处理的输出流类。7.1.4 节点流和过滤流节点流和过滤流 根据流相对于程序的另一个端点的不同,可以
8、分根据流相对于程序的另一个端点的不同,可以分为节点流和过滤流。为节点流和过滤流。节点流:以特定源,比如磁盘文件、内存区域等节点流:以特定源,比如磁盘文件、内存区域等之间的管道为端点构造的之间的管道为端点构造的I/0流称为节点流。流称为节点流。过滤流:以其他已经存在的流为端点构造的过滤流:以其他已经存在的流为端点构造的I/O流称为过滤流。流称为过滤流。7.1.5 输入输入/输出流的套接输出流的套接 一般通过过滤流将多个流套接在一起,利用各种一般通过过滤流将多个流套接在一起,利用各种流的特性共同处理数据流。套接的多个流就构成了流的特性共同处理数据流。套接的多个流就构成了一个流链。一个流链。7.1.
9、6 常用的输入常用的输入/输出流输出流 1.文件流文件流 FileInputStream/FileOutputStream,FileReader/FileWriter (1).FileInputStream FileInputStream类是为了处理来源于文件的类是为了处理来源于文件的面向字节输入而设计的类,它是由面向字节输入而设计的类,它是由InputStream类派生而来的。类派生而来的。构造方法构造方法:FileInputStream(File file);FileInputStream(FileDescriptor fdObj);FileInputStream(String name)
10、;公有方法公有方法 int available():获取可以从文件流中读取的字获取可以从文件流中读取的字节数目。节数目。void close():关闭该文件流。关闭该文件流。int read():从文件流读取一个字节的数据。从文件流读取一个字节的数据。int read(byte b):从文件流读取从文件流读取b.length字字节的数据到一个字节数组中。节的数据到一个字节数组中。int read(byte b,int off,int len):从文件流从文件流读取读取len字节的数据到一个字节数组中。字节的数据到一个字节数组中。long skip(long n):略过并舍弃略过并舍弃n个字节的
11、数据。个字节的数据。FileInputStream类的示例类的示例 例例1 1:读取文件全部内容:读取文件全部内容 例例2 2:读取文件部分内容:读取文件部分内容 例例3 3:读取时跳过文件部分内容:读取时跳过文件部分内容 (2)FileOutputStream类类 在在Java中,文件的写入可以通过中,文件的写入可以通过FileOutputStreamFileOutputStream类的方法实现,用户可以利用该类一个字节一个字类的方法实现,用户可以利用该类一个字节一个字节地将数据写入文件。节地将数据写入文件。构造方法构造方法 FileOutputStream(File file),FileO
12、utputStream(FileDescriptor fdObj),FileOutputStream(String name),FileOutputStream(String name,boolean append)常用方法常用方法 void close():关闭输出流。关闭输出流。protected void finalize():确认该输出流没有任确认该输出流没有任何引用的时候调用何引用的时候调用close方法。方法。void write(byte b):从指定字节数组写入输出从指定字节数组写入输出流。流。void write(byte b,int off,int len)从指定字节从指定
13、字节数组写入指定字符到输出流。数组写入指定字符到输出流。void write(int b):写入指定的字节到输出流。写入指定的字节到输出流。(3)文件字符流()文件字符流(FileReader类和类和FileWriter类类)FileReader类创建一个可以读取文件内容的类创建一个可以读取文件内容的Reader类。类。FileWriter创建一个可以写文件的创建一个可以写文件的Writer类。类。例子:通过文件字符流实现文本的复制例子:通过文件字符流实现文本的复制 2.缓存流缓存流 缓存流包括缓存流包括BufferedReader/BufferedWriter类类和和BufferedInpu
14、tStream/BufferedOutputStream类类 缓存流把数据从原始流成块读入或把数据积累到一个大缓存流把数据从原始流成块读入或把数据积累到一个大数据块后再成批写出,通过减少系统资源的读写次数来加数据块后再成批写出,通过减少系统资源的读写次数来加快程序的执行。快程序的执行。【注】【注】BufferedOutputStream和和BufferedWriter类类仅仅在缓冲区满或调用仅仅在缓冲区满或调用flush()方法时才将数据写出。方法时才将数据写出。缓存流是过滤流,在创建具体缓存流时,缓存流是过滤流,在创建具体缓存流时,需要给出一个需要给出一个InputStream/Output
15、Stream类类型的流作为前端流,并可以指明缓冲区的大型的流作为前端流,并可以指明缓冲区的大小。小。例如,例如,InputStream类的构造方法:类的构造方法:public BufferedInputStream(InputStream in)public BufferedInputStream(InputStream in,int size)BufferedReader类中增加了一个有用的方法类中增加了一个有用的方法readLine(),该方法读一行字符返回。该方法读一行字符返回。3.管道流管道流 管道流可以实现线程间数据的直接传输。管道流可以实现线程间数据的直接传输。4.数据流数据流 数
16、据流包括数据流包括DataInputStream/DataOutputStream类,它们允许按类,它们允许按Java的基本数据类型读写流中的数的基本数据类型读写流中的数据。这两个类中提供了很多读写基本数据类型的方据。这两个类中提供了很多读写基本数据类型的方法。法。5.标准输入标准输入/输出输出 Java在在System类中定义了与系统标准输入类中定义了与系统标准输入/输输出相关联的三个流,它们是:出相关联的三个流,它们是:System.in,System.out,System.err。System类是类是Java中一个功能很强大的类,利用中一个功能很强大的类,利用它可以获得它可以获得Java
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 输入输出 处理
限制150内