111Java输入输出类库一其他输入输出流类 ■基本输入输出流是定义基本输入输岀操作的抽象类,在Ja阳a程序中真 正使用的是它们的子类。它们对应不同的数据源和输入输出任务,以 及不同的输入输出流。较常用的输入输出流如下表 输入输出流名 简要说明 输入输出流类型 FilterInput Stream 主要特点是输入输出数据的同时,能对所传输的数据做指 定类型或格式的转换,即可实现对二进制字节数据的理解 过滤输入输出流 FilterOutput Stream 和编码转换 FileInput Stream 主要负责完成对磁盘文件的顺序读写操作 文件 FileOutputStream PipedInputStream 主要负责实现程序内部的线程间的通信或不同程序间的通 管道输入输出流 PipedOutput Stream By te Array InputStream 主要实现与内存缓冲区的同步读写 字节数组流 By teArray OutputStream Sequencelnput Stream 主要负责把两个其他的输入流首尾相接,合并成一个完整 顺序输入流 的输入流
◼基本输入输出流是定义基本输入输出操作的抽象类,在Java程序中真 正使用的是它们的子类。它们对应不同的数据源和输入输出任务,以 及不同的输入输出流。较常用的输入输出流如下表 11.1 Java输入输出类库—其他输入输出流类 输入输出流类型 输入输出流名 简要说明 过滤输入输出流 FilterInputStream 主要特点是输入输出数据的同时,能对所传输的数据做指 定类型或格式的转换,即可实现对二进制字节数据的理解 和编码转换 FilterOutputStream 文件 FileInputStream 主要负责完成对磁盘文件的顺序读写操作 FileOutputStream 管道输入输出流 PipedInputStream 主要负责实现程序内部的线程间的通信或不同程序间的通 信 PipedOutputStream 字节数组流 ByteArrayInputStream 主要实现与内存缓冲区的同步读写 ByteArrayOutputStream 顺序输入流 SequenceInputStream 主要负责把两个其他的输入流首尾相接,合并成一个完整 的输入流
111Java输入输出类库一标准输入输出 当]av程序需要与外设等外界数据源做输入、输出的数据交换时,它 需要首先创建一个输入或输出类的对象来完成对这个数据源的连接。 如当Java程序需要读写文件时,它需要先创建文件输入或文件输岀流 类的对象。除文件外,程序也经常使用字符界面的标准输入、输出设 备进行读写操作。 计算机系统都有默认的标准输入设备和标准输出设备。对一般的系统, 标准输入通常是键盘,标准输岀通常是显示器。Ja阳a程序使用字符界 面与系统标准输入、输岀间进行数据通信,即从键盘输入数据,或向 显示器输出数据,是十分常见的操作。为此,Java系统事先定义好两 个流对象,分别与系统的标准输入和标准输出相联系,它们是 System. in和 System. out。 System是Java中一个功能很强大的类,利用它可以获得很多Java运行 时的系统信息。 System类的所有属性和方法都是静态的,即调用时需 要以类名 System为前缀。 System. in和 System.ot就是 System类的两个 静态属性,分别对应了系统的标准输入和标准输出
当Java程序需要与外设等外界数据源做输入、输出的数据交换时,它 需要首先创建一个输入或输出类的对象来完成对这个数据源的连接。 如当Java程序需要读写文件时,它需要先创建文件输入或文件输出流 类的对象。除文件外,程序也经常使用字符界面的标准输入、输出设 备进行读写操作。 计算机系统都有默认的标准输入设备和标准输出设备。对一般的系统, 标准输入通常是键盘,标准输出通常是显示器。Java程序使用字符界 面与系统标准输入、输出间进行数据通信,即从键盘输入数据,或向 显示器输出数据,是十分常见的操作。为此,Java系统事先定义好两 个流对象,分别与系统的标准输入和标准输出相联系,它们是 System.in和System.out。 System是Java中一个功能很强大的类,利用它可以获得很多Java运行 时的系统信息。System类的所有属性和方法都是静态的,即调用时需 要以类名System为前缀。System.in和System.out就是System类的两个 静态属性,分别对应了系统的标准输入和标准输出。 11.1 Java输入输出类库—标准输入输出
111Java输入输出类库一标准输入输出 ■标准输入 Java的标准输入 System. in是 Inputstream类的对象,当程序中需要从键 盘输入数据的时候,只需调用 System. in的read(O方法即可。在使用 System. in. read(O方法读取数据时,需要注意以下4点 (1) System in read()语句必须包含在try块中,且ty块后面应该有一个 可接收 LOEXception例外的 catch块 (2)执行 System in read)方法将从键盘缓冲区读取一个字节的数据,然 而返回的却是16位的整型量,需要注意的是只有这个整型量的低位字节是 真正输入的数据,其高位字节是全零。 (3) System in read(只能从键盘读取二进制的数据,而不能是其他类型 的数据。 (4)当键盘缓冲区中没有未被读取的数据时,执行 System in read()将导 致系统转入阻塞状态。在阻塞状态下,当前流程将停留在上述语句位置且 整个程序被挂起,等待用户输入一个键盘数据后,才能继续运行下去;所 以程序中有时利用 System in reado语句来达到暂时保留屏幕的目的
◼标准输入 Java的标准输入System.in是InputStream类的对象,当程序中需要从键 盘输入数据的时候,只需调用System.in的read()方法即可。在使用 System.in.read()方法读取数据时,需要注意以下4点: 11.1 Java输入输出类库—标准输入输出 (1) System.in.read()语句必须包含在try块中,且try块后面应该有一个 可接收IOException例外的catch块。 (2)执行System.in.read()方法将从键盘缓冲区读取一个字节的数据,然 而返回的却是16位的整型量,需要注意的是只有这个整型量的低位字节是 真正输入的数据,其高位字节是全零。 (3)System.in.read()只能从键盘读取二进制的数据,而不能是其他类型 的数据。 (4)当键盘缓冲区中没有未被读取的数据时,执行System.in.read()将导 致系统转入阻塞状态。在阻塞状态下,当前流程将停留在上述语句位置且 整个程序被挂起,等待用户输入一个键盘数据后,才能继续运行下去;所 以程序中有时利用System.in.read()语句来达到暂时保留屏幕的目的