Java I/O

Java中I/O操作主要是指使用Java进行输入、输出操作。

Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。

数据流是一串连续不断的数据的集合,就像水管里的水流,在水管的一端一点一点的供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段、一段的向数据流管道中写入数据,这些数据会按照先后顺序形成一个长的数据流。对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但是只能先读取前面的数据后,在读取后面的数据,不能随机读取。不论写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。

简而言之:数据流是一组有序的,有起点和终点的字节数据序列,包括输入流和输出流。

当程序需要读取数据的时候,就会建立一个通向数据源的连接,这个数据源可以是文件、内存、网络连接等。类似的,当程序需要写入数据的时候,就会建立一个通向目的地的连接。

数据流的分类

数据流序列中的数据既可以是未经加工的原始二进制数据,也可以是经过一定编码处理后符合某种格式规则的特定数据。因此,Java中的数据流分为两种:

1. 字节流  数据流中最小的数据单元是字节

2. 字符流  数据流中最小的数据单元是字符

Java 中的字符是Unicode编码的,一个字符占用两个字节。

概览

Java.io 包几乎包含了所有操作输入、输出重要的类。所有这些流类代表了输入源和输出目标。

Java.io 中最重要的就是5个类和1个接口。

5个类:

1. File:文件特征与管理,用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

2. OutputStream:抽象类,字节流,二进制格式操作,基于字节的输入操作。是所有输入流的父类,定义了所有输入流都具有的共同特征。

3. InputStream:抽象类,字节流,二进制格式操作,基于字节的输出操作。是所有输出流的父类,定义了所有输出流都具有的共同特征。

4. Writer:抽象类,字符流,文本文本格式操作,基于字符的输出操作。

5. Reader:抽象类,字符流,文本格式操作,基于字符的输入操作操作。

6. RandomAccessFile:随机文件操作,可以从文件的任意位置进行存取操作。

1个接口:

1. Serializable

Java I/O 主要包括如下3个层次

1. 流式部分,最主要的部分,如 InputStream, OutputStream, Reader, Writer 等

2. 非流式部分, 如 File, RandomAccessFile, FileDescriptor 等

3. 其他文件读取部分的与安全相关的类,以及与本地操作系统相关的文件系统的类。

按照来源/去向分类

1. File(文件):FileInputStream, FileOutputStream, FileReader, FileWriter

2. byte []:ByteArrayInputStream, ByteArrayOutputStream

3. Char []:CharArrayReader, CharArrayWriter

4. String:StringBufferInputStream, StringReader, StringWriter

5. 网络数据流:InputStream, OutputStream, Reader, Writer

 

 

 参考:

 http://www.importnew.com/23708.html

posted on 2018-08-30 11:24  0820LL  阅读(143)  评论(0编辑  收藏  举报

导航