Java I/O 深入学习(一)
<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
Java I/O最关键的四个类是 InputStream( 输入字节流 ),OutputStream( 输出字节流 ),Reader( 输入字符流 ) 和 Writer( 输出字符流 ). 其中字节流数据的传送是以 byte 为单位的,而字符流的数据的传送是以 character 为单位的,所以 java.io 包大概范围两大类,一个是以 byte 处理为主的 Stream 类,他们都是以 XXXStream 方式命名的,一类是以 Character 处理为主的 Reader/Writer 类,他们都是以 XXXReader 和 XXXWriter 的方式命名。
JAVA的输入输出流大体可以分为三类:数据源类、数据流串联类、数据流过滤类。其中数据源类是创建各种流的起始类,第二类和第三类都使对各自流实例的包装。
|
输入字节流 |
输出字节流 |
输入字符流 |
输出字符流 |
抽象类 |
InputStream |
OutputStream |
Reader |
Writer |
转换类 |
|
|
InputStreamReader |
OutputStreamReader |
第一类:数据源类 |
||||
数组 |
ByteArrayInputStream |
ByteArrayOutputStream |
CharArrayReader |
CharArrayWriter |
文件 |
FileInputStream |
FileOutputStream |
FileReader |
FileWriter |
对象 |
ObjectInputStream |
ObjectOutputStream |
|
|
字符串 |
StringBufferInputStream |
|
StringReader |
StringWriter |
第二类:数据流串联类 |
||||
管道 |
PipeInputStream |
PipeOutputStream |
PipeReader |
PipeWriter |
序列 |
SequenceInputStream |
|
|
|
第三类:数据流过滤类 |
||||
过滤 |
FilterInputStream |
FilterOutputStream |
FilterReader |
FilterWriter |
缓冲 |
BufferedInputStream |
BufferedOutputStream |
BufferedReader |
BufferedWriter |
数据 |
DataInputStream |
DataOutputStream |
|
|
行号 |
LineNumberInputStream |
|
LineNumberReader |
|
推回 |
PushbackInputStream |
|
PushbackReader |
|
格式化 |
|
PrintStream |
|
PrintWriter |