IO流:原理、流的分类、体系结构

Java IO原理

 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于
处理设备之间的数据传输。如读/写文件,网络通讯等。
 Java程序中,对于数据的输入/输出操作以 “流(stream)” ” 的
方式进行。
 java.io包下提供了各种“流”类和接口,用以获取不同种类的
数据,并通过 标准的方法输入或输出数据。

 

 

 

 

 

 

 

 输入input: :读取外部数据(磁
盘、光盘等存储设备的数据)到
程序(内存)中。
 输出output: :将程序(内存)
数据输出到磁盘、光盘等存储设
备中。

 

 

 

 字符流和字节流的区别:字节流操作的基本单元为字节,字符流操作的基本单元为unicode码元;字节流默认不使用缓冲区,字符流使用缓冲区。

 

 

 

 IO  流体系

 

 

 

 

InputStream & Reader
InputStream 和 Reader 是所有 输入流的基类。
InputStream(典型实现:FileInputStream)
int read()
int read(byte[] b)
int read(byte[] b, int off, int len)
Reader(典型实现:FileReader)
int read()
int read(char [] c)
int read(char [] c, int off, int len)
程序中打开的文件 IO 资源不属于内存里的资源,垃圾回收机制无法回收该资
源,所以应该件 显式关闭文件 IO 资源。
FileInputStream 从文件系统中的某个文件中获得输入字节。FileInputStream
用于读取非文本数据之类的原始字节流。要读取字符流,需要使用 FileReader

 


InputStream
 int read()
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因
为已经到达流末尾而没有可用的字节,则返回值 -1。
 int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。如果因为已
经到达流末尾而没有可用的字节,则返回值 -1。否则以整数形式返回实际读取
的字节数。
 int read(byte[] b, int off,int len)
将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取
的字节也可能小于该值。以整数形式返回实际读取的字节数。如果因为流位于
文件末尾而没有可用的字节,则返回值 -1。
 public void close() throws IOException
关闭此输入流并释放与该流关联的所有系统资源。

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-06-11 09:49  小白冲  阅读(293)  评论(0编辑  收藏  举报