Java基礎-IO流對象之內存操作流(ByteArrayOutputStream與ByteArrayInputStream)


        Java基礎-IO流對象之內存操作流(ByteArrayOutputStream與ByteArrayInputStream)

                                     作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

 

一.內存操作流特點

  內存操作流是為了臨時處理數據而設置的。內存操作流分為“ByteArrayOutputStream和“ByteArrayInputStream”。

  “ByteArrayOutputStream類實現了一個輸出流,其中的數據被寫入一個 byte 數組。緩沖區會隨着數據的不斷寫入而自動增長。可使用 toByteArray()toString() 獲取數據。關閉 ByteArrayOutputStream 無效。此類中的方法在關閉此流后仍可被調用,而不會產生任何 IOException。 

   “ByteArrayInputStream”包含一個內部緩沖區,該緩沖區包含從流中讀取的字節。內部計數器跟蹤 read 方法要提供的下一個字節。關閉 ByteArrayInputStream 無效。此類中的方法在關閉此流后仍可被調用,而不會產生任何 IOException。 

 

二.內存操作流使用案例

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 package cn.org.yinzhengjie.note6;
 8 
 9 import java.io.ByteArrayInputStream;
10 import java.io.ByteArrayOutputStream;
11 
12 public class ByteArrayOutputStreamDemo {
13     public static void main(String[] args) {
14         ByteArrayOutputStream bos = new ByteArrayOutputStream();
15         
16         byte[] buf = "yinzhengjie@2018".getBytes();
17         int len = buf.length;
18         //將指定的字節寫入此 byte 數組輸出流。
19         bos.write(100);
20         //將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入此 byte 數組輸出流。
21         bos.write(buf, 0, len);
22         byte[] cache = new byte[1024];
23         
24         
25         //定義一個讀取的流,需要傳入一個內部緩沖區,這個緩沖區需要和寫入的緩沖區是同一個喲,不然存在讀取不到數據的情況。
26         ByteArrayInputStream bis = new ByteArrayInputStream(buf);
27         while( (len = bis.read()) != -1 ) {
28             System.out.print((char)len);
29         }
30     }
31 }
32 
33 
34 /*
35 以上代碼執行結果如下:
36 yinzhengjie@2018
37 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM