Java IO (java.io package) 学习总结
Java IO API
-
Java IO API的设计目的: 解决java程序的输入输出问题.
-
Java IO API的范围: 主要解决文件IO,网络IO,内存缓冲IO等等.
-
Java IO 的优点: 设计优雅,高度封装,使用便捷.
-
Java IO的缺点: 阻塞式的,性能一般
Java IO API的类关系图
(图片来源于网络)
如何选用合适的类完成需求
类别 | 字节相关 | 字符相关 |
---|---|---|
普适 | InputStream,OutputStream | Reader,Writer,InputStreamReader,OutputStreamWriter |
数组 | ByteArrayInputStream,ByteArrayOutputStream | CharArrayReader,CharArrayWriter |
文件 | FileInputStream,FileOutputStream,RandomAccessFile | FileReader,FileWriter |
管道 | PipedInputStream,PipedOutputStream | PipedReader,PipedWriter |
带缓冲 | BuffedInputStream,BuffedOutputStream | BuffedReader,BuffedWriter |
Filtering | FilterInputStream,FilterOutputStream | FilterReader,FilterWriter |
Parsing | PushbackInputStream,StreamTokenizer | PushbackReader,LinenumberReader |
字符串 | StringReader,StringWriter | |
Data | DataInputStream,DataOutputStream | |
格式化数据输出 | PrintStream | PrintWriter |
Object | ObjectInputStream,ObjectOutputStream | |
? | SequenceInputStream |
(感谢jenkov大佬的整理
Java IO API的使用
得益于api优雅的设计,Java IO API使用十分简单便捷.几乎都一个模式…
//比如说读取一个文件
FileInputStream fileInputStream = new FileInputStream("c:\\data\\input-text.txt");
int data = fileInputStream.read();
while(data != -1) {
data = fileInputStream.read();
}
fileInputStream.close();
//如果加上异常处理 Plus:使用了jdk7的try-with-resources特性
try( FileInputStream fileInputStream = new FileInputStream("file.txt") ) {
int data = fileInputStream.read();
while(data != -1){
data = fileInputStream.read();
}
}