位置:首頁 > Java技術 > Java教學 > Java ByteArrayInputStream

Java ByteArrayInputStream

ByteArrayInputStream類類允許在內存中的緩衝區被作為一個InputStream。輸入源是一個字節數組。有構造函數如下形式來創建ByteArrayInputStream類對象

取一個字節數組作為參數:

ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);

另一種形式中需要一個字節數組,和兩個整數,其中脫的第一個字節被讀和len是要讀取的字節數。

ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a, 
                                                       int off, 
                                                       int len)

一旦有ByteArrayInputStream類對象,再有就是使用helper方法可以用來讀取流或做其他的操作在流列表。

SN 方法和描述
1 public int read()
此方法從InputStream中讀取數據的下一個字節。返回一個int作為下一個數據字節。如果是文件的末尾則返回-1。
2 public int read(byte[] r, int off, int len)
此方法從輸入流讀取開始到一個數組中的len個字節。返回讀取的字節總數。如果文件末尾,則返回-1。
3 public int available() 
給出了可以從該文件輸入流中讀取的字節數。返回一個int,讓要讀取的字節數。
4 public void mark(int read)
這將設置流中的當前標記的位置。該參數給出,可以前的標記位置變為無效讀取的字節的最大限製。
5 public long skip(long n)
從流跳過的n字節數。這將返回的實際跳過字節數。

例子:

下麵是例子來演示ByteArrayInputStream類和ByteArrayOutputStream對象使用方法:

import java.io.*;

public class ByteStreamTest {

   public static void main(String args[])throws IOException {

      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Gets the inputs from the user
         bOutput.write(System.in.read()); 
      }

      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      for(int x= 0 ; x < b.length; x++) {
         // printing the characters
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");

      int c;

      ByteArrayInputStream bInput = new ByteArrayInputStream(b);

      System.out.println("Converting characters to Upper case " );
      for(int y = 0 ; y < 1; y++ ) {
         while(( c= bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

下麵是上述程序的運行結果:

asdfghjkly
Print the content
a   s   d   f   g   h   j   k   l   y
Converting characters to Upper case
A
S
D
F
G
H
J
K
L
Y