java字元流緩衝區詳解
1. 為什麼要緩衝區?
程式頻繁地操作一個資源(如檔案),則效能會很低,此時為了提升效能,就可以將一部分資料暫時讀入到記憶體的一塊區域中,以後直接從此區域中讀取資料即可,因為讀記憶體速度比較快,這樣提高效能。在IO中引入緩衝區,主要是提高流的讀寫效率。
2. 緩衝技術的原理?
總的來說,緩衝區就是記憶體裡的一塊區域,把資料先存記憶體裡,然後一次性寫入,類似資料庫的批量操作,這樣效率比較高
3. BufferedWriter類
①. 定義
1 |
|
將文字寫入字元輸出流,緩衝各個字元,從而提供單個字元、陣列和字串的高效寫入。
②. 常用的方法:
1 2 3 4 5 6 7 8 9 10 |
throws IOException
|
4. BufferedReader類
①.定義:
1 |
|
從字元輸入流中讀取文字,緩衝各個字元,從而實現字元、陣列和行的高效讀取。
②. 常用的方法:
1 2 3 4 5 6 7 8 |
|
範例:通過緩衝區複製一個文字檔案
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
5.緩衝區原理圖解
6.根據原理圖,自定義緩衝類
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
測試自定義緩衝類
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
|
①問題:上面有一個範例------緩衝區複製一個文字檔案,怎麼讓複製後每行帶有行標?
回答:
要實現此功能,最方便的是使用LineNumberReader,下面我們看下這個類
此類的定義:
1 |
|
跟蹤行號的緩衝字元輸入流。此類定義了方法 setLineNumber(int) 和 getLineNumber(),它們可分別用於設定和獲取當前行號。
實現上面功能程式程式碼如下:
1 2 3 4 5 6 7 8 9 |
|
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援指令碼之家。