Java中的IO的流的總結

Java IO的一般使用原則:

一、按數據來源(去向)分類:

1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter

2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream

3、是Char[]: CharArrayReader, CharArrayWriter

4、是String: StringBufferInputStream, StringReader, StringWriter

5、網絡數據流:InputStream, OutputStream, Reader, Writer

二、按是否格式化輸出分:

1、要格式化輸出:PrintStream, PrintWriter

三、按是否要緩衝分:

1、要緩衝:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter

四、按數據格式分:

1、二進制格式(只要不能確定是純文本的): InputStream, OutputStream及其所有帶Stream結束的子類

2、純文本格式(含純英文與漢字或其他編碼方式);Reader, Writer及其所有帶Reader, Writer的子類

五、按輸入輸出分:

1、輸入:Reader, InputStream類型的子類

2、輸出:Writer, OutputStream類型的子類

六、特殊需要:

1、從Stream到Reader,Writer的轉換類:InputStreamReader, OutputStreamWriter

2、對象輸入輸出:ObjectInputStream, ObjectOutputStream

3、進程間通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter

4、合併輸入:SequenceInputStream

5、更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

決定使用哪個類以及它的構造進程的一般準則如下(不考慮特殊需要):

第一,考慮最原始的數據格式是什麼:是否爲文本?

第二,是輸入還是輸出?

第三,是否需要轉換流:InputStreamReader, OutputStreamWriter?

第四,數據來源(去向)是什麼:文件?內存?網絡?

第五,是否要緩衝:bufferedReader (特別註明:一定要注意的是readLine()是否有定義,有什麼比read, write更特殊的輸入或輸出方法)

第六,是否要格式化輸出:print?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章