java流式输入/输出原理
在java程序中,对于数据的输入、输出操作以“流”的方式进行,用以获取不同的数据。
程序中通过标准的方法输入和输出数据。
java.io包定义了多个流类型(类或抽象类)来实现输入、输出功能。
注:所有的输入和输出都是站在程序的角度来说明的。
可以从不同的角度对其进行分类。
<1>按照处理数据的单位不同可以分为字节流和字符流。
<2>按照功能不同可以分为节点流和处理流。
注:
节点流:节点流为可以从一个特定的数据源(节点)读写数据(如:文件、内存)
处理流:处理流是“连接”在已存在的流(节点流或者处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。
四个抽象类的输入输出:
InputStream:
//读取一个字节并以整数的形式返回(0~255)
//如果返回-1,说明已到输入流的末尾。
int read() throws IOException
//读取一系列字节并存储到一个数组buffer
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte[] buffer) throws IOException
//读取length个字节
//并储存到一个字节数组BUffer中,从offset开始
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte[] buffer, int offset, int length) throws IOException
//关闭流释放内存资源
void close() throws IOException
//跳过n个字节不读,返回实际跳过的字节数
long skip(long n) throws IOException
OutPutStream的基本方法
//向输出流中写入一个字节数据,该字节数据为参数b的低8位。
void write(int b)throws IOException
//将字节类型的数组中的数据写入到输出流
void write(byte[] b) throws IOEXception
//将一个字节类型的数组中的从指定位置开始的(off)开始的len个字节写入到输出流。
void write(byte[] b, int off, int len)throws IOEception
//关闭流释放内存资源
void close() throws IOException
//将输出流中缓冲的数据全部写出到目的地
void flush() throws IOException
字符流:两个字节的输入或者输出
Reader用于向程序中输入数据,且数据的处理单位是两个字节。
//读取一个字符并以整数的形式返回(0~255)
//如果返回-1已到输入流的末尾
int read() throws IPEXception
//读取一些列字符并存储到一个数组buffer
//返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int read(char[] cbuf) throws IOExcetion
//读取length个字符
//并存储到一个数组BUffer,offset位置开始
//返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int read(char[] cbuf, int offset, int length) throws IOException
//关闭流释放内存资源
void close() throws IOException
//跳过n个字符不读,返回实际跳过的字节数
long skip(long n) throws IOException
Writer输出一个字符数据:
//向流中写入一个字符数据,该字符数据为参数b的低16位
void write(int b ) throws IOException
//将一个字符类型的数组中的数据写入输出流
void write(char[] cbuf) throws IOException
//将一个字符类型的数组中的从指定位置(offset)开始的length个字符写入到输出流
void write(char[] cbuf, int offset, int length) throws IOException
//将一个字符串中的字符写入到输出流
void write(String string) throws IOException
//将一个字符串从offset开始的length个字符写入到输出流
void write(String string, int offset, int length) throws IOException
//关闭流释放内存资源
void close() throws IOException
//将输出流中缓存的数据全部写出到目的地
void flush() throws IOException