InputStream 读到 byte[]
时间: 2023-10-25 15:45:25 浏览: 61
可以使用`InputStream.read(byte[])`方法将`InputStream`中的数据读取到一个`byte[]`数组中。该方法会尝试从输入流中读取字节,并将其存储到给定的`byte[]`数组中。它返回实际读取的字节数,如果已经达到流的末尾,则返回-1。
以下是一个示例代码:
```java
InputStream inputStream = ...; // 初始化 InputStream
int bufferSize = 1024; // 缓冲区大小,根据需要进行调整
byte[] buffer = new byte[bufferSize];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = inputStream.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
byte[] data = output.toByteArray();
```
在上述示例中,我们创建了一个`ByteArrayOutputStream`对象来暂存从输入流中读取的数据。然后,我们使用一个循环来反复读取输入流中的数据,并将其写入到缓冲区中。最后,我们将缓冲区中的数据转换成一个`byte[]`数组。
请注意,上述代码仅为示例,你需要根据具体情况进行适当的修改和错误处理。
相关问题
Java InputStream流读取byte[]
可以使用 InputStream 的 read(byte[] b) 方法来读取字节流到一个 byte 数组中。该方法的语法如下:
```
public int read(byte[] b) throws IOException
```
其中,参数 b 是用来存储读取数据的字节数组,返回值是读取的字节数。该方法会尽可能多地读取字节流到数组中,但不保证一定读满整个数组。
以下是一个示例代码,演示了如何使用 InputStream 读取字节流到 byte 数组中:
```java
InputStream inputStream = new FileInputStream("file.txt");
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = inputStream.read(buffer)) != -1) {
// 处理读取到的字节数据
System.out.println("Read " + bytesRead + " bytes.");
}
inputStream.close();
```
在上述代码中,我们创建了一个 FileInputStream 对象 inputStream,用于读取一个名为 "file.txt" 的文件。然后创建一个大小为 1024 的字节数组 buffer,用来存储读取到的字节数据。在 while 循环中,我们使用 inputStream.read(buffer) 方法读取字节流到 buffer 数组中,并将读取的字节数赋值给 bytesRead 变量。如果 bytesRead 的值为 -1,说明已经读取到了文件末尾,循环结束。否则,我们可以在循环体内处理读取到的字节数据。最后,我们使用 inputStream.close() 方法关闭输入流。
inputstream
InputStream 是一个抽象类,它是所有输入流类的父类。它定义了输入字节流的基本方法和行为,常用于读取二进制数据。
InputStream 的主要方法包括:
1. int read():读取单个字节并返回,如果已经读到末尾,返回-1。
2. int read(byte[] b):读取一定量的字节并存储到字节数组 b 中,返回实际读取的字节数。
3. int read(byte[] b, int off, int len):读取最多 len 个字节存储到字节数组 b 中,从 off 开始存储,返回实际读取的字节数。
4. long skip(long n):跳过 n 个字节不读取,返回实际跳过的字节数。
5. int available():返回可从此输入流中读取的字节数。
6. void close():关闭此输入流并释放与该流关联的所有系统资源。
注意,InputStream 是一个抽象类,不能直接创建实例,需要使用其子类的实现。常用的子类包括 FileInputStream、ByteArrayInputStream 和 BufferedInputStream 等。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)