534
阿裏雲
技術社區[雲棲]
Java IO: 字節和字符數組
Java中的字節和字符數組,經常被用於臨時存儲應用程序內部的數據,所以數組也是常見的數據來源以及數據流目的地。如果你在程序執行過程中需要頻繁訪問文件的內容,你可能會願意將文件加載到數組中去。當然你可以通過索引直接訪問這些數組。但是如果你有一個組件的設計初衷是從InputStream或者Reader而非數組中讀取某些數據呢?
通過InputStream或者Reader讀取數組
為了讓你的組件能夠從數組中讀取數據,你需要把字節或者字符數組包裝到一個ByteArrayInputStream或者CharArrayReader中。這種方式允許通過包裝好的stream或者reader讀取數組中的字節或者字符數據。
這是一個簡單的示例:
01 |
byte [] bytes = new byte [ 1024 ];
|
03 |
//write data into byte array... |
05 |
InputStream input = new ByteArrayInputStream(bytes);
|
09 |
int data = input.read();
|
13 |
//do something with data
|
操作一個字符數組的代碼與本例類似,隻需要將字符數組包裝到CharArrayReader中。
通過InputStream或者Reader寫入數組
同樣可以將數據寫入到ByteArrayOutputStream或者CharArrayWriter中。你所需要做的是創建一個ByteArrayOutputStream或者CharArrayWriter,然後寫入數據,就像你操作其他類型的stream或者writer一樣。當所有的數據都寫入完畢,隻需調用toByteArray()或者toCharArray(),即可得到寫入數據的數組形式。
這是一個簡單的示例:
1 |
OutputStream output = new ByteArrayOutputStream();
|
3 |
output.write( "This text is converted to bytes" .toBytes( "UTF-8" ));
|
5 |
byte [] bytes = output.toByteArray();
|
操作一個字符數組的代碼也與本例類似,隻需要將字符數組包裝到CharArrayWriter中。
最後更新:2017-05-23 14:33:09