文档介绍:第8章 Java 输入输出系统
字节流
过滤流
字符流
对象序列化
File类
综合实例
标准I/O
随机访问文件类
字节流
,,它是抽象类,不能实例化。InputStream类的作用是用来表示那些从不同数据源产生输入的类。这些数据源有:字节数组、String对象、文件、管道及其他数据源。每一种数据源都有相应的InputStream子类。。
输入流的类层次结构
字节流
InputStream中的读取数据的方法如下:
abstract int read() throws IOException
功能:读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。
int read(byte[] b) throws IOException
功能:从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中,并以整数形式返回实际读取的字节数,如果返回-1,表示读到了输入流的末尾。
int read(byte[] b, int off, int len) throws IOException:
功能:将数据读入一个字节数组,同时返回实际读取字节数,如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置,len指定读取的最大字节数。如果返回-1,表示读到了输入流的末尾。
long skip(long n) throws IOException:
功能:跳过和放弃此输入流中的n个字节,返回跳过的实际字节数。如果n为负,则不跳过任何字节。默认实现是此类的 skip方法创建一个 byte 数组,然后重复将字节读入其中,直到读够 n 个字节或已到达流末尾为止。
字节流
int available() throws IOException:
功能:返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
void close():
功能:关闭输入流,释放和这个流相关的系统资源。
,它也是抽象类,不能被实例化。字节输出流的种类和字节输入流是大致对应的。。
输出流的类层次结构
字节流
OutputStream中的写入数据的方法如下:
abstract void write(int b) throws IOException:将b的最低的一个字节写入此输出流,b的高位字节(3个)丢弃。
void write(byte[] b) throws IOException:。
void write(byte[] b,int off,int len)throws IOException:将指定byte数组中从偏移量 off 开始的len个字节写入此输出流。
void flush()throws IOException:刷新此输出流并强制写出所有缓冲的输出字节。
void close()throws IOException:关闭此输出流并释放与此流有关的所有系统资源。
字节数组输入流
ByteArrayInputStream类从内存中的字节数组中读取数据,因此它的数据源是一个字节数组。ByteArrayInputStream类本身采用了适配器设计模式,它把字节数组转换为输入流类型,使得程序能够对字节数组进行读操作。
【】使用字节数组输入流读取数组中的字节。
字节数组输出流
ByteArrayOutputStream类的构造方法如下:
ByteArrayOutputStream():创建一个新的字节数组输出流。缓冲区的容量最初是32字节,如有必要可增加其大小。
ByteArrayOutputStream(int size):创建一个新的byte数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。
字节数组输出流
【】把字符串转换为字节数组再写入到字节数据输出流中。
.iostream;
import .*;
class ByteArrayOutputStreamDemo {
public static void main(String args[]) throws IOException {
ByteArrayOutputStream baos = new ByteAr