【Java IO流】InputStream和Reader

尚硅谷:http://www.gulixueyuan.com/course/311

InputStream & Reader

  • InputStreamReader 是所有輸入流的基類。

  • InputStream(典型實現:FileInputStream

    • int read()
    • read(byte[] b)
    • int read(byte[] b, int off, int len)
  • Reader(典型實現:FileReader

    • int read()
    • int read(char [] c)
    • int read(char [] c, int off, int len)
  • 程序中打開的文件 IO 資源不屬於內存裏的資源,垃圾回收機制無法回收該資 源,所以應該顯式關閉文件 IO 資源

  • FileInputStream 從文件系統中的某個文件中獲得輸入字節。FileInputStream 用於讀取非文本數據之類的原始字節流。要讀取字符流,需要使用 FileReader

InputStream

int read()

  • 從輸入流中讀取數據的下一個字節。返回 0 到 255 範圍內的 int 字節值。如果因 爲已經到達流末尾而沒有可用的字節,則返回值 -1。

int read(byte[] b)

  • 從此輸入流中將最多 b.length 個字節的數據讀入一個 byte 數組中。如果因爲已 經到達流末尾而沒有可用的字節,則返回值 -1。否則以整數形式返回實際讀取 的字節數。

int read(byte[] b, int off,int len)

  • 將輸入流中最多 len 個數據字節讀入 byte 數組。嘗試讀取 len 個字節,但讀取 的字節也可能小於該值。以整數形式返回實際讀取的字節數。如果因爲流位於 文件末尾而沒有可用的字節,則返回值 -1。

public void close() throws IOException

  • 關閉此輸入流並釋放與該流關聯的所有系統資源

Reader

int read()

  • 讀取單個字符。作爲整數讀取的字符,範圍在 0 到 65535 之間 (0x00-0xffff)(2個 字節的Unicode碼),如果已到達流的末尾,則返回 -1

int read(char[] cbuf)

  • 將字符讀入數組。如果已到達流的末尾,則返回 -1。否則返回本次讀取的字符數。

int read(char[] cbuf,int off,int len)

  • 將字符讀入數組的某一部分。存到數組cbuf中,從off處開始存儲,最多讀len個字 符。如果已到達流的末尾,則返回 -1。否則返回本次讀取的字符數。

public void close() throws IOException

  • 關閉此輸入流並釋放與該流關聯的所有系統資源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章