3.6 Java之轉換流和標準輸入輸出流
阿新 • • 發佈:2019-02-17
轉換流
- 轉換流(屬於處理流)作用在節點流之上
- 轉換流共兩種:輸入型和輸出型
- 輸入型轉換流:將輸入型位元組流轉換為輸入型字元流,使得以字元形式讀入,提高效率,輸出型同理
- 解碼:由位元組陣列(位元組流)轉化為字串(字元流)(由看不懂到看懂)
- 編碼:由字串(字元流)到位元組陣列(位元組流)
使用框架
- 轉換流構造器:可傳入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),建立一個使用預設大小輸入緩衝區的緩衝字元輸入流
- 處理的是字串,轉換為字元流
- 總結:將位元組流轉換為帶緩衝的字元流,從而讀入、
轉換流與標準輸入輸出流的例項
加入異常處理
- 忽略大小寫
- 最後轉化為帶緩衝的字元流