閱讀327 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO: 字節和字符數組

內容列表

  • 從InputStream或者Reader中讀入數組
  • 從OutputStream或者Writer中寫數組

在java中常用字節和字符數組在應用中臨時存儲數據。而這些數組又是通常的數據讀取來源或者寫入目的地。如果你需要在程序運行時需要大量讀取文件裏的內容,那麼你也可以把一個文件加載到數組中。當然你可以通過直接指定索引來讀取這些數組。但如果設計成為從InputStream或者Reader,而不是從數組中讀取某些數據的話,你會用什麼組件呢?

 InputStream  Reader中讀取數組

用ByteArrayInputStream或者CharArrayReader封裝字節或者字符數組從數組中讀取數據。通過這種方式字節和字符就可以以數組的形式讀出了。

樣例如下:

01 byte[] bytes = new byte[1024];
02  
03  
04  
05 //把數據寫入字節數組...
06  
07  
08  
09 InputStream input = new ByteArrayInputStream(bytes);
10  
11  
12  
13 //讀取第一個字節
14  
15 int data = input.read();
16  
17 while(data != -1) {
18  
19 //操作數據
20  
21  
22  
23 //讀下一個字節
24  
25 data = input.read();
26  
27 }

以同樣的方式也可以用於讀取字符數組,隻要把字符數組封裝在CharArrayReader上就行了。

通過 OutputStream 或者 Writer寫數組

同樣,也可以把數據寫到ByteArrayOutputStream或者CharArrayWriter中。你隻需要創建ByteArrayOutputStream或者CharArrayWriter,把數據寫入,就像寫其它的流一樣。當所有的數據都寫進去了以後,隻要調用toByteArray()或者toCharArray,所有寫入的數據就會以數組的形式返回。

樣例如下:

1 OutputStream output = new ByteArrayOutputStream();
2  
3  
4  
5 output.write("This text is converted to bytes".toBytes("UTF-8"));
6  
7  
8  
9 byte[] bytes = output.toByteArray();

寫字符數組也和此例子類似。隻要把字符數組封裝在CharArrayWriter上就可以了。

最後更新:2017-05-23 13:31:44

  上一篇:go  《GO並發編程實戰》—— 條件變量
  下一篇:go  Java 網絡教程: ServerSocket