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)
相關用法
- Java ByteArrayInputStream available()用法及代碼示例
- Java ByteArrayInputStream mark()用法及代碼示例
- Java ByteArrayInputStream close()用法及代碼示例
- Java ByteArrayInputStream markSupported()用法及代碼示例
- Java ByteArrayInputStream reset()用法及代碼示例
- Java ByteArrayInputStream skip()用法及代碼示例
- Java Reader read()用法及代碼示例
- Java ObjectInputStream read()用法及代碼示例
- Java BufferedInputStream read()用法及代碼示例
- Java PushbackInputStream read()用法及代碼示例
- Java CharArrayReader read()用法及代碼示例
- Java PushbackReader read()用法及代碼示例
- Java DataInputStream read()用法及代碼示例
- Java StringReader read()用法及代碼示例
- Java BufferedReader read()用法及代碼示例
- Java StringReader read(CharBuffer)用法及代碼示例
- Java CharArrayReader read(CharBuffer)用法及代碼示例
- Java CharArrayReader read(char[], int, int)用法及代碼示例
- Java Reader read(char[])用法及代碼示例
- Java PushbackReader read(char, int, int)用法及代碼示例
注:本文由純淨天空篩選整理自pp_pankaj大神的英文原創作品 ByteArrayInputStream read() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。