1,java.io 包简介
java.io
包用来处理java中基本的输入与输出才操作,主要关注点在文件的输入输出,网络流,内部内存缓冲等。I/O类可以分为四个部分:
- 从数据流中读取输入
- 向数据流中写输出
- 在本地文件系统中操作文件
- 处理对象序列化
java的I/O以流为基础。通信中,流表示数据的通道,可以向流中写数据 ,也 可以从流中读取数据,如图1所示为应用程序通过java io api向流中读写数据的示意图:
与流相关的输入与输出主要可以分为以下几类:
- 文件
- 管道
- 网络连接
- 内存缓冲器(例如:数组)
- System.in
, System.out
, System.error
2, Java IO 之流与文件
以下与类相关的API参考JavaDoc
通过Java IO可以对文件进行如下四类操作:
1. 通过Java IO中读取文件
2. 通过Java IO中写文件
3. 通过Java IO随机读写文件
4. 获取文件和目录信息
Java IO实现的最底层的功能是对原始二进制流的读写操作,在二进制流的基础上通过编解码实现对字符串的操作,进而实现对文件的操作。所以,对文件的操作本质上就是对二进制流的操作,只是做了层层的封装。
与上述操作相关的类:
FileInputStream
和 FileReader
能实现文件的读取,前者以二进制的形式读取文件,后者以文本的形式读取文件。
FileOutputStream
和FileWriter
则用于向流中写文件。
随机读写统一使用RandomAccessFile
类实现。
操作文件和目录相关的信息,如读取文件的大小,权限等信息使用File
类实现。
Java IO包的结构如图2所示:
3 流的操作方法
对流的操作实际上是对二进制数据的操作。利用字节流可以实现对二进制文件如图像文件,音频文件等文件的操作。
3.1 输入流
与输入流相关的类是InputStream
及其子类,实际应用中根据不同的场合选择相应的子类。可以使用AudioInputStream
读取音频文件,使用FileInputStream
读取文本文件。
未完待续
References