输入输出流
本章内容
Java 流式输入/输出原理
Java流类的分类
输入/输出流类
常见的节点流和处理流
文件流
缓冲流
字符集和编码
数据流
转换流
Print流
Object流
NIO简介
Java流式输入/输出原理
在Java程序中,对于数据的输入/输出操作以“流”(stream) 方式进行;J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。
文件
00101………
程序
文件
………00101
程序
网路连接
程序
0010111………
程序
程序
010…
010…
文件
010…
程序
“hello”
流是一个很形象的概念
I/O 流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。把输入流的指向称做源,程序从指向源的输入流中读取源中的数据。而输出流的指向是字节要去的一个目的地(或用户),程序通过向输出流中写入数据把信息传递到目的地。虽然I/O 流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口。
输入/输出流的分类
包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:
按数据流的方向不同可以分为输入流和输出流。(以程序的角度来考虑)
按处理数据单位不同可以分为字节流和字符流。
按照功能不同可以分为节点流和处理流。
J2SDK 。
字节流
字符流
输入流
InputStream
Reader
输出流
OutputStream
Writer
节点流和处理流
节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存)
处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。
数据源
程序
节点流
数据源
数据源
程序
程序
InputStream
继承自InputSteam的流都是用于向程序中输入数据,且数据的单位为字节(8 bit);下图中深色为节点流,浅色为处理流。
InputStream的基本方法
//读取一个字节并以整数的形式返回(0~255),
//如果返回-1已到输入流的末尾。
int read() throws IOException
//读取一系列字节并存储到一个数组buffer,
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte[] buffer) throws IOException
//读取length个字节
//并存储到一个字节数组buffer,从off位置开始存,最多len
//返回实际读取的字节数,如果读取前以到输入流的末尾返回-1
int read(byte[] buffer, int off, int len)
throws IOException
//关闭流释放内存资源
void close() throws IOException
OutputStream
继承自OutputSteam的流是用于程序中输入数据,且数据的单位为字节(8 bit);下图中深色为节点流,浅色为处理流。
IO输入输出流 来自淘豆网m.daumloan.com转载请标明出处.