Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件

上传人:w****i 文档编号:94405852 上传时间:2019-08-06 格式:PDF 页数:18 大小:275.07KB
返回 下载 相关 举报
Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件_第1页
第1页 / 共18页
Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件_第2页
第2页 / 共18页
Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件_第3页
第3页 / 共18页
Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件_第4页
第4页 / 共18页
Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件》由会员分享,可在线阅读,更多相关《Java开发技术 普通高等教育十一五 国家级规划教材 教学课件 ppt 作者 魏勇 第二章 流和文件(18页珍藏版)》请在金锄头文库上搜索。

1、 14 第二章第二章 流和文件流和文件 ? 流式输入输出概述 ? 字节流 ? 字符流 ? 文件与目录 ? 文件读写案例 大部分程序都需要输入/输出处理,例如,从键盘读取数据。向屏幕输出数据、从文件 中读数据或者向文件中写数据、在一个网络连接上进行读写操作等。本章主要介绍 Java 程 序输入输出的实现及文件与目录的管理。 2.1 流式输入输出概述流式输入输出概述 流(Stream)是指在计算机的输入与输出之间运动的数据序列。 Java 把不同类型的输入、 输出源(键盘、文件、网络等)抽象为流,而其中输入或输出的数据则称为数据流(Data Stream),用统一的方式来表示,从而使程序设计简单明

2、了。 流一般分为输入流(Input Stream)和输出流(Output Stream)两类。如一个文件, 当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。键盘只 是一个输入流, 而屏幕则只是一个输出流。 只能从输入流中读取数据, 而不能向其写出数据; 只能向输出流写出数据,而不能从其中读取数据。 Java 通过使用 java.io 包中的类来执行文件等的处理工作。下图总结了 JavaI/O 类的继 承关系。 java.lang.Object +- File +- FileDescriptor +- InputStream +- ByteArrayInputStrea

3、m +- FileInputStream +- FilterInputStream +- BufferedInputStream +- DataInputStream +- PushbackInputStream +- ObjectInputStream +- PipedInputStream +- SequenceInputStream +- OutputStream +- ByteArrayOutputStream +- FileOutputStream +- FilterOutputStream +- BufferedOutputStream 15 +- DataOutputStream

4、 +- PrintStream +- ObjectOutputStream +- PipedOutputStream +- RandomAccessFile +- Reader +- BufferedReader +- LineNumberReader +- CharArrayReader +- FilterReader +- PushbackReader +- InputStreamReader +- FileReader +- PipedReader +- StringReader +- Writer +- BufferedWriter +- LineNumberWriter +- Cha

5、rArrayWriter +- FilterWriter +- PushbackWriter +- InputStreamWriter +- FileWriter +- PipedWriter +- StringWriter 在 Java 的输入输出类库中,基本输入输出流类是其它输入输出流类的父类。按处理数 据的类型,基本输入输出流类又可以分为字节(byte)流和字符(char)流。 基本输入字节流类是 InputStream, 基本输出字节流类是 0utputStream; 基本输入字符 流类是 Reader,基本输出字符流类是 Writer。 2.2 字节流字节流 2.2.1 基本字节流基

6、本字节流 基本字节流包括基本输入流 InputStream 和基本输出流 OutputStream。 ? InputStream 类 InputStream 类中的常用方法有: + read():从输入流中读数据。 + skip():跳过流中若干字节数。 + available():返回流中可用字节数。 + mark():在流中标记一个位置。 + reset():返回标记过的位置。 16 + markSupport():是否支持标记和复位操作。 + close():关闭流。 ? OutputStream 类 0utputStream 类的常用方法有: + write():将数据输出到流中(只输

7、出低位字节,抽象方法)。 + flush():清空输出流,并将缓冲区中的数据强制送出。 + close():关闭流。 2.2.2 其他输入输出流类其他输入输出流类 InputStream 和 OutputStream 类均是抽象类,作为其他输入/输出流类的基类,对应于 读/写字节流信息的基本接口。它提供了其所有子类都能调用的方法。 作为 InputStream 和 OutputStream 类的子类, DataInputStream 和 DataOutputStream 类提供了更多的读取方式。 为了有更多、 更有效的方法进行输入和输出, 经常把 InputStream 和 OutpurtSt

8、ream 类转换为 DataInputStream 和 DataOutputStream 等类型。 例如可以将标准输入 System.in 转换为 DataInputStream 类型。 DataInputStream in = new DataInputStream(System.in); 然后, 可以用 DataInputStream 的 in.readLine()和 readChar()等方法来读取字符串、 字 符或更多数据类型。 除 DataInputStream 和 DataOutputStream 等类外,从 InputStream 和 OutputStream 还派生出来的一系列

9、类。这类流以字节(byte)为基本处理单位。 ? FileInputStream、FileOutputStream ? PipedInputStream、PipedOutputStream ? ByteArrayInputStream、ByteArrayOutputStream ? FilterInputStream、FilterOutputStream ? DataInputStream、DataOutputStream ? BufferedInputStream、BufferedOutputStream 基本输入输出流是定义基本输入输出操作的抽象类,在 Java 程序中真正使用的是它们 的

10、子类。它们对应不同的数据源和输入输出任务,以及不同的输入输出流。 数据输入输出流 DataInputStream 和 Data0utputStream 分别是过滤输入输出流 FilterInputStream 和 Filter0utputStream 的子类。过滤输入输出流 FilterInputStream 和 Filter0utputStream 是两个抽象类。过滤输入输出流的最主要作用是在数据源和程序之间加 一个过滤处理步骤,对原始数据做特定的加工、处理和变换操作。 文件输入输出流 FileInputStream 和 File0utputStream,主要负责完成对本地磁盘文件 的顺序读

11、写操作。 管道输入输出流 PipedInputStream 和 Piped0utputStream,负责实现程序内部的线程 间的通信或不同程序间的通信。 字节数组流 ByteArrayInputStream 和 ByteArray0utputStream, 可实现与内存缓冲区的 同步读写。 顺序输入流 SequenceInputStream,可以把两个其他的输入流首尾相接,合并成一个 完整的输入流。 此外,还有能将字节流转为字符流的类 InputStreamReader 及 0utputStreamWriter。 有关字符流的类在下一节学习。 17 2.2.3 标准输入输出标准输入输出 Jav

12、a 的标准输入输出指在字符方式下(如 DOS),程序与系统进行交互的方式,分为 三种: ? 标准输入 studin,对象是键盘。 ? 标准输出 stdout,对象是屏幕。 ? 标准错误输出 stderr,对象也是屏幕。 包 java.lang 中的 System 管理标准输入/输出流和错误流。利用它可以获得很多 Java 运行时的系统信息。 System 类的所有属性和方法都是静态的, 即调用时需要以类名 System 为前缀。 System.in 从 InputStream 中继承而来, 用于从标准输入设备中获取输入数据(通常是键 盘)。 System.out 从 Printstream 中

13、继承而来,用于把输出送到默认的显示设备(通常是显示 器)。 System.err 也是从 PrintStream 中继承而来,把错误信息送到默认的显示设备(通常是 显示器) 1) 标准输入 Java 的标准输入 System.in 是 InputStream 类的对象,当程序需要从键盘读入数据的 时候,只需调用 System.in 的 read()方法即可。 如下面的语句将从键盘读入一个字节的数据: char ch = System.in.read(); 在使用 System.in.read()方法读入数据时,需要注意如下几点。 ? System.in.read()语句必须包含在 try 块中

14、,且 try 块后面应该有一个可接收 I0Exception 异常的 catch 块。如下例所示: try ch = System.in.read(); catch(IOException e). . ? 执行 System.in.read()方法将从键盘缓冲区读入一个字节的数据,然而返回的却是 16 位的整型量,其低位字节是真正输入的数据,高位字节是全零。另外,作为 InputStream 类的对象,System.in 只能从键盘读取二进制的数据,而不能把这些信息转换为整数、字符、 浮点数或字符串等复杂数据类型的量。 当键盘缓冲区中没有未被读取的数据时,执行 System.in.read()

15、将导致系统转入阻塞 (block)状态。在阻塞状态下,当前流程将停留在上述语句位置,整个程序被挂起,等用户输 入一个键盘数据后,才能继续运行下去,所以程序中有时利用 System.in.read()语句来达到 暂时保留屏幕的目的。例如下面的语句段: System.out.println (“press any key to finish the program”); try char test = (char)System.in.read(); catch (IOException e). . 2) 标准输出 Java 的标准输出 System.out 是打印输出流 PrintStream 类的对象。PrintStream 是过 滤输出类流 Filter0utputStream 的一个子类,其中定义了向屏幕输送不同类型数据的方法 18 print()和 println()。 + println()方法 print()方法有多种形式,概括起来可表述为: public void println (类型 变量或对象); println()的作用是向屏幕输出其参数指定的变量或对象,然后再换行,使光标停留在屏 幕下一行第一个字符的位置。如果 println()方法的参数为空,则输出一个空行。 println()方法可输出多种不同类型的变量或对象,包括 b

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

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

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