1. 程式人生 > >從字節流到字符流的裝換

從字節流到字符流的裝換

sys tails spa 字符集 緩沖流 更多 滿足 span char

引用地址:https://blog.csdn.net/lzh_86/article/details/78107597

System.in的類型可以歸結為節點流、字節流、輸入流;
InputStreamReader這個對象是處理流,字符流,輸入流;
BufferedReader的類型是緩沖處理流、字符流、輸入流。

類 InputStreamReader是字節流通向字符流的橋梁:它使用指定的 charset 讀取字節並將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平臺默認的字符集。如:GBK
每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入流讀取一個或多個字節。要啟用從字節到字符的有效轉換,可以提前從底層流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。 為了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如: BufferedReader in= new BufferedReader(new InputStreamReader(System.in));

System.in是個字節流

InputStreamReader是個字符流和字節流之間的轉換中介

BufferedReader是個字符流
整體意思就是用InputStreamReader這個中介把System.in這個字節流轉換成字符流BufferedReader
這樣輸入的時候就可以不是一個一個字節讀,而是一個一個字符讀,再加上是個Buffer,效率會高很多。
InputStream is = System.in;//鍵盤輸入流
InputStreamReader isr = new InputStreamReader(is);//字節流轉換為字符流
BufferedReader bufr = new BufferedReader(isr);//把字符流添加到緩沖流

用戶通過reader對象的readLine方法來進行讀取。

從字節流到字符流的裝換