进入第八篇,我们开始讨论JAVA的IO初步。在JAVA程序中,对数据的输入\输出操作以"流"(stream)方式进行,J2SDK提供了各种各样的"流"类,用于获取不同种类的数据,程序中通过标准的方法输入和输出数据。
1、输入、输出流的分类:
java.io包中定义了多个流类型(类或抽象类)来实现输入和输出功能;可以从不同的角度对其进行分类:
按数据流的方向不同可以分为输入、输出流
按处理数据的单位不同分为字节流和字符流
按照功能不同分为可以分为字节流和处理流
J2SDK提供的所有流类型位于包java.io内分别继承至一下四种抽象流类型:
2、节点流和处理流:
节点流为可以从一个特定的数据源(节点)读取数据(文本,内存)
处理流是连接在已存在的流(节点流和处理流)之上,通过对数据的处理为程序通过更加强大的读写功能。
3、InputStream和OutputStream:
继承自InputStream的流都是用于向程序中输入数据,且数据单位为字节;
继承自OutputStream的流都是用于向程序输出数据,且数据单位为字节。
注意:这里本篇提到的输入和输出都是相对于程序而言的。
4、InputStream常用方法:
int read():读取一个字节并以整数的形式返回,如果返回值为-1表示读取完成
int read(byte[] buffer):读取一系列的字节并保存到buffer字节数组中,返回值为实际读取的字节数
int read(byte[] buffer, int offset, int length):读取length个字节,并保存到buffer字节数组中,从offset位置开始存储,返回值为实际读取的字节数
void close():关闭流释放内存资源
long skip(long n):跳过n个字节不读,返回实际跳过的字节数。
5、OutputStream常用方法;
void write(int b):向输出流中写入一个字节的数据该字节数据为参数b的低8位。
void write(byte[] buffer):将一个字节类型的数组型写入到输出流中
void write(byte[] buffer, int off, int len):将一个字节类型的数组中的从指定位置(off)开始的,len个字节写入到输出流
void close():关闭流释放内存资源
void flush():将输出流中缓存的数据全部写出到目的地
先写到这里,晚上回来接着补充,尽请期待。