JAVA的節點流和處理流


  • 節點流:可以從或向一個特定的地方(節點)讀寫數據。如FileReader.
  • 處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現數據讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數。一個流對象經過其他流的多次包裝,稱為流的鏈接。

JAVA常用的節點流:  

  • 文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件進行處理的節點流。
  • 字符串 StringReader StringWriter 對字符串進行處理的節點流。
  • 數 組 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter 對數組進行處理的節點流(對應的不再是文件,而是內存中的一個數組)。
  • 管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter對管道進行處理的節點流。

常用處理流(關閉處理流使用關閉里面的節點流)

  • 緩沖流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter---增加緩沖功能,避免頻繁讀寫硬盤。
  • 轉換流:InputStreamReader OutputStreamReader實現字節流和字符流之間的轉換。
  • 數據流 DataInputStream DataOutputStream 等-提供將基礎數據類型寫入到文件中,或者讀取出來.

流的關閉順序

  1. 一般情況下是:先打開的后關閉,后打開的先關閉
  2. 另一種情況:看依賴關系,如果流a依賴流b,應該先關閉流a,再關閉流b。例如,處理流a依賴節點流b,應該先關閉處理流a,再關閉節點流b
  3. 可以只關閉處理流,不用關閉節點流。處理流關閉的時候,會調用其處理的節點流的關閉方法。

注意:

  1. 如果將節點流關閉以后再關閉處理流,會拋出IO異常。
  2. 如果關閉了處理流,在關閉與之相關的節點流,也可能出現IO異常。(hadoop編程文件流操作中遇到了。)

總結:通常在IO的繼承樹中,繼承自Filter開頭的流或者轉化流都是處理流,其他的都是節點流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM