<!-- [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 |