當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java ByteArrayInputStream read()用法及代碼示例


Java中的ByteArrayInputStream類的read()方法以兩種方式使用:

1. Java中ByteArrayInputStream類的read()方法用於讀取ByteArrayInputStream的下一個字節。此read()方法返回以整數形式讀取的字節,如果輸入流結束,則此方法返回-1。此方法一次從流中讀取一個字節。

用法:

public int read()

指定者:此方法由InputStream類的read()方法指定。

參數:此方法不接受任何參數。



返回值:此方法以整數形式返回讀取的字節。如果流結束,則返回-1。

異常:此方法不會引發任何異常。

以下示例程序旨在說明IO包中ByteArrayInputStream類中的read()方法:

程序:

// Java program to illustrate 
// ByteArrayInputStream read() method 
  
import java.io.*; 
  
public class GFG { 
    public static void main(String[] args) 
        throws Exception 
    { 
  
        // Create byte array 
        byte[] buf = { 71, 69, 69, 75, 83 }; 
  
        // Create byteArrayInputStream 
        ByteArrayInputStream byteArrayInputStr 
            = new ByteArrayInputStream(buf); 
  
        int b = 0; 
        while ((b = byteArrayInputStr.read()) != -1) { 
            // Convert byte to character 
            char ch = (char)b; 
  
            // Print the character 
            System.out.println("Char:" + ch); 
        } 
    } 
}
輸出:
Char:G
Char:E
Char:E
Char:K
Char:S

2. Java中ByteArrayInputStream類的read(byte [],int,int)方法用於從ByteArrayOutputStream讀取給定字節數到給定字節數組中。此方法與上麵的read()方法不同,因為它一次可以讀取多個字節。它返回讀取的總字節數作為返回值。

用法:

public void read(byte[ ] b,
                 int offset,
                 int length)

覆蓋:此方法覆蓋InputStream類的read()方法。



參數:此方法接受三個參數:

  • b-它表示讀取數據的字節數組。
  • offset-它表示字節數組b中的起始索引。
  • length-它表示要讀取的字節數。

返回值:此方法返回讀取到緩衝區的總字節數。如果輸入流結束,則此方法返回-1。

異常:

  • NullPointerException -如果字節數組b為null,則此方法引發NullPointerException。
  • IndexOutOfBoundsException-在offset或offset為負或length為負後,如果長度大於輸入流的長度,則此方法引發IndexOutOfBoundsException。

以下示例程序旨在說明IO包中ByteArrayInputStream類中的read(byte [],int,int)方法:

程序:

// Java program to illustrate 
// ByteArrayInputStream 
// read(byte[ ], int, int) method 
  
import java.io.*; 
  
public class GFG { 
    public static void main(String[] args) 
        throws Exception 
    { 
  
        // Create byte array 
        byte[] buf = { 71, 69, 69, 75, 83 }; 
  
        // Create byteArrayInputStream 
        ByteArrayInputStream byteArrayInputStr 
            = new ByteArrayInputStream(buf); 
  
        // Create buffer 
        byte[] b = new byte[4]; 
  
        int total_bytes 
            = byteArrayInputStr.read(b, 1, 3); 
  
        // Total number of bytes read 
        System.out.println("Total bytes read:"
                           + total_bytes); 
  
        for (byte ch:b) { 
  
            // Print the character 
            if (ch == 0) 
                System.out.println("NULL"); 
  
            else
                System.out.println((char)ch); 
        } 
    } 
}
輸出:
Total bytes read:3
NULL
G
E
E

參考文獻:
1. https://docs.oracle.com/javase/10/docs/api/java/io/ByteArrayInputStream.html#read()
2. https://docs.oracle.com/javase/10/docs/api/java/io/ByteArrayInputStream.html#read(byte%5B%5D, int, int)




相關用法


注:本文由純淨天空篩選整理自pp_pankaj大神的英文原創作品 ByteArrayInputStream read() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。