Java IO

来源:互联网 发布:mac系统使用视频教程 编辑:程序博客网 时间:2024/06/05 08:41

1,java.io 包简介

java.io 包用来处理java中基本的输入与输出才操作,主要关注点在文件的输入输出,网络流,内部内存缓冲等。I/O类可以分为四个部分:

  • 从数据流中读取输入
  • 向数据流中写输出
  • 在本地文件系统中操作文件
  • 处理对象序列化
    java的I/O以流为基础。通信中,表示数据的通道,可以向流中写数据 ,也 可以从流中读取数据,如图1所示为应用程序通过java io api向流中读写数据的示意图:
    图1,应用程序从流中读写数据示意图

与流相关的输入与输出主要可以分为以下几类:
- 文件
- 管道
- 网络连接
- 内存缓冲器(例如:数组)
- 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实现的最底层的功能是对原始二进制流的读写操作,在二进制流的基础上通过编解码实现对字符串的操作,进而实现对文件的操作。所以,对文件的操作本质上就是对二进制流的操作,只是做了层层的封装。
与上述操作相关的类:
FileInputStreamFileReader能实现文件的读取,前者以二进制的形式读取文件,后者以文本的形式读取文件。
FileOutputStreamFileWriter则用于向流中写文件。
随机读写统一使用RandomAccessFile类实现。
操作文件和目录相关的信息,如读取文件的大小,权限等信息使用File类实现。
Java IO包的结构如图2所示:
图2 Java IO 包结构图

3 流的操作方法

对流的操作实际上是对二进制数据的操作。利用字节流可以实现对二进制文件如图像文件,音频文件等文件的操作。

3.1 输入流

与输入流相关的类是InputStream及其子类,实际应用中根据不同的场合选择相应的子类。可以使用AudioInputStream读取音频文件,使用FileInputStream读取文本文件。
未完待续


References

  1. http://bioinfo2.ugr.es/OReillyReferenceLibrary/java/fclass/ch11_js.htm