Java SE之旅_08_IO流

編碼時經常使用到流,但是流對象太多了, 如果不弄清楚流操作的規律就不知道用哪個對象合適.

如何選擇合適的流對象?只要明確這四個步驟即可:

 1. 確定源(InputStream/Reader)和目的(OutputStream/Writer)
 2. 是否是純文本(是: Reader和Writer)
 3. 明確具體的設備:  鍵盤(System.in or System.out), 硬盤(File), 內存(數組), 網絡(Socket)
 4. 是否需要額外功能?( 需要轉換(字節<-->字符) :InputSteamReader/OutputStreamwriter; 需要高效:BufferedXxx)


具體分析:

1. 明確源和目的
源 : InputStream  / Reader
目的: OutputStream  /  Writer

2: 明確數據是否是純文本數據(明確具體要使用哪個體系)
源: 是純文本, 使用Reader
      不是純文本: 使用InputStream

目的: 是純文本 ,使用Writer
  不是純文本: 使用OutputStream

3: 明確具體的設備
源設備:
    硬盤:File
    鍵盤:System.in
    內存:數組
    網絡:Socket流

目的設備:
    硬盤:File
    控制檯:System.out
    內存:數組
    網絡:Socket流

4: 是否需要其他額外功能?
  是否需要緩衝區(提高效率): 是,則加上Buffered;

  是否需要在字節和字符間轉換: 是,則使用轉換流(InputStreamReader / OutputStreamWriter)

  是否需要指定編碼: 是,則使用轉換流(InputStreamReader / OutputStreamWriter)


PS:

InputStreamReader將字節轉換成字符,用於解碼; OutputStreamWriter將字符轉換成字節,用於編碼.

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