1. 程式人生 > >3.6 Java之轉換流和標準輸入輸出流

3.6 Java之轉換流和標準輸入輸出流

轉換流

  • 轉換流(屬於處理流)作用在節點流之上
  • 轉換流共兩種:輸入型和輸出型
  • 輸入型轉換流:將輸入型位元組流轉換為輸入型字元流,使得以字元形式讀入,提高效率,輸出型同理
  • 解碼:由位元組陣列(位元組流)轉化為字串(字元流)(由看不懂到看懂)
  • 編碼:由字串(字元流)到位元組陣列(位元組流)

使用框架

這裡寫圖片描述

  • 轉換流構造器:可傳入InputStream的實現類物件
  • 轉換流的引數:字符集,即指定按何種方式進行解碼和編碼(前後相對應)
  • isr是Reader類的子類的物件,可進行再包裝,傳入BufferReader構造器中(緩衝流)

例項

新增異常處理
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

轉換流總結

  • 關注解碼和編碼的過程
  • 轉換流適用於直接作用於文字檔案的是節點流的情況
  • 鍵盤輸入的內容(輸入的是字元)可當成文字檔案,例如system.in預設是一個位元組流,但輸入的為文字檔案,採用轉換流,提高讀取效率

標準的輸入輸出流

  • 包含System.in和System.out
  • 標準輸出流:輸出到顯示器上(控制檯)
  • 標準輸入流:預設位元組流
  • Scanner s = new Scanner(System.in);//接受鍵盤內容
    • 可傳入標準輸入流這一引數,表示從鍵盤輸入,所以scanner能讀取使用者輸入

JDK文件解釋

這裡寫圖片描述

  • 位元組流的抽象基類是InputStream
  • 標準輸入流System.in:返回InputStream的實現類物件(位元組流),輸入型
  • 標準輸出流System.out:返回列印流PrintStream,屬於位元組流,列印流預設列印到控制檯上

使用框架

這裡寫圖片描述

  • 鍵盤輸入採用System.in
  • System.in返回InputStream的實現類物件,預設是一個位元組流
  • InputStreamReader(InputStream in)
  • BufferedReader(Reader in),建立一個使用預設大小輸入緩衝區的緩衝字元輸入流
  • 處理的是字串,轉換為字元流
  • 總結:將位元組流轉換為帶緩衝的字元流,從而讀入、

轉換流與標準輸入輸出流的例項

加入異常處理
這裡寫圖片描述
這裡寫圖片描述

  • 忽略大小寫
  • 最後轉化為帶緩衝的字元流