学习笔记之面向对象编程18(流之 InputStream,OutputStream)

来源:互联网 发布:plsql查看存储过程源码 编辑:程序博客网 时间:2024/06/13 04:15

(一)java流式输入输出原理

在java程序中,对于数据的输入输出操作以“流(stream)”方式进行;提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。

(二)输入输出流的分类

Java.io包中定义了多个流类型(类或抽象类)来实现输入输出功能,可以从不同角度对其进行分类;

按照数据流的方向不同可以分为输入流和输出流;

按处理数据单位的不同可以分为字节流和字符流;

按照功能不同可以分为节点流和处理流。

提供的所有流类型位于包java.io内部分别继承自四种抽象流类型

                       字节流                       字符流

输入流         InputStream                  Reader  

输出流         OutputStream               Writer

《1》节点流和处理流

节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存)

处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能

《2》InputStream

继承自InputStream的流都是用于向程序中输入数据,且数据的单位为字节(8位);

InputStream流有FileInputStream,PipeInputStream,FilterInputStream,ByteArrayInputStream,SequenceInputStream,StringBufferInputStream,ObjectInputStream,其中ObjectInputStream,SequenceInputStream,FilterInputStream为处理流,其他为节点流。

InputStream的基本方法:

int read() throws IOException:读取一个字节并以整数的形式返回(0~255),如果返回-1已到输入流的末尾;

int read(byte[ ] buffer) throws IOException:读取一系列字节并存储到一个数组buffer,返回实际读取的字节数,如果读取前已经到输入流的末尾返回-1;

int read(byte[ ] buffer,int offset, int length) throws IOException:读取length个字节,并存储到一个字节数组buffer,从length位置开始,返回实际读取的字节数,如果读取前已到输入流的末尾返回-1;

void close() throws IOException:关闭流释放内存资源;

long skip(long n) throws IOException:跳过n个字节不读,返回实际跳过的字节数。

OutputStream的基本方法:

void write(int b) throws IOException:向输出流中写入一个字节数据,该字节数据为参数b的低8位;

void write(byte[ ] b) throws IOException:讲一个字节类型的数组中的数据写入输出流;

void write(bute[ ] b,int off,int len) throws IOException:将一个字节类型的数组中的从指定位置(off)开始的len个字节写入到输出流;

void close() throws IOException:关闭流释放内存资源;

void flush() throws IOException:将输出流中缓冲的数据全部写出到目的地

阅读全文
0 0
原创粉丝点击