8.1使用输入 输出流(课件)-高二《程序设计基础》同步教学(北京出版社)
2023-08-01
|
23页
|
144人阅读
|
3人下载
普通
内容正文:
单元
8
输入输出与文件处理
目录DIRECTORY
01
使用输入/ 输出流
02
创建文件和文件夹
03
文件输入/ 输出操作
01
使用输入/ 输出流
学习目标
1. 能够掌握Java 中流概念和流的分类;
2. 能够掌握Java 中字节型输入/ 输出流和缓冲区输入/ 输出流的基本使用方法;
3. 能够掌握Java 中字符型输入/ 输出流和缓冲区输入/ 输出流的基本使用方法。
预备知识
流是Java 中处理输入/ 输出的形式。字节型输入/ 输出流由InputStream 类和OutputStream 类派生而来,字符型输入/ 输出流由Reader 类和Writer 类派生而来。
一、流
所有的编程语言都支持读入输入和显示输出,Java 语言以流的形式处理所有的输入和输出。流是由源到目的地通过通信路径传递的一串字节或字符,流中的数据只能向一个方向流动,所以我们使用区分输入数据和输出数据的流。流在被接收时称为输入(读),在被发送时称为输出(写)。使用输入流可从文件或键盘读入数据,而使用输出流可将数据写入到文件或其他输出设备,如显示在屏幕上。
Java 中的流按处理的数据类型又可分为字节流和字符流,分别用于处理字节型数据和字符型数据。字节输入流的基类是InputStream,字节输出流的基类是 OutputStream,字符输入流的基类是Reader,字符输出流的基类是Writer。这四个类都是抽象类,是所有其他流的父类。
InputStream 类是一个抽象类,不能被实例化,仅用于派生各种字节型输入流,它的常用方法如表所示,这些方法在InputStream 的各种子类中也可以使用。
二、字节型输入/ 输出流
(一)InputStream 类
InputStream 类的常见子类有:
FileInputStream:文件输入流,用于读取本地文件系统的文件数据(信息)。
PipedInputStream:管道输入流,用于实现管道流的输入处理。
ByteArrayInputStream:字节数组输入流,允许将内存中的一个缓冲区作为输入流使用,实现内存的读取操作。
SequenceInputStream:连接输入流,将两个或更多的输入流对象连接起来。
StringBufferInputStream:用于读取 StringBuffer 类的可变字符串中的数据。
ObjectInputStream:对象输入流,用于输入流中读取对象类数据。
FilterInputStream:过滤输入流,重写了InputStream 中的所有方法,使程序在读取数据的同时,还可以进行数据处理,它也是一个抽象类,有BufferedInputStreamLineNumberInputStream、PushbackInputStream 和DataInputStream 等子类。
(二)OutputStream 类
OutputStream 类也是一个抽象类,用于派生各种字节型输出流,它的常见方法如下表。
OutputStream 类的常见子类有:
ObjectOutputStream:对象输出流,用于直接进行对象的写入。
FileOutputStream:文件输出流,用于将数据写入到本地文件系统的文件中。
PipedOutputStream:管道输出流,用于实现管道流的输出处理。
ByteArrayOutputStream:字节数组输出流,用于向内存中写入数据。
FilterOutputStream:过滤输出流,重写了OutputStream 中的所有方法,使程序在写入数据的同时,还可以进行数据处理,它也是一个抽象类,有DataOutputStream、
BufferedOutputStream 和PrintStream 等子类。
三、字符型输入/ 输出流
(一)Reader 类
Reader 类是一个抽象类,不能被实例化,仅用于派生各种字符型输入流,该类的所有方法在出错情况下都将引发IOException 异常。
Reader 类的常见子类有:
FileReader:文件输入流,用于读取本地文件系统的文件数据(信息)。
PipedReader:管道输入流,用于实现管道流的输入处理。
CharArrayReader:是字符数组输入流,用于读取字符数组,操作的数据是以字符为单位。
BufferedReader:是缓冲字符输入流,它的作用是为其他字符输入流添加一些缓冲功能。
InputStreamReader:将字节流转换为字符流。是字节流通向字符流的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,例如:GBK。
FilterReader:是实现自定义过
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。