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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。