read(byte[] b)返回值是数组个数吗
时间: 2024-05-29 16:15:53 浏览: 114
方法 `read(byte[] b)` 会尝试从输入流中读取一定数量的字节,并将其存储到给定的字节数组 `b` 中。它返回值是实际读取的字节数,可能小于所请求的字节数。如果已经到达文件末尾,则返回值为 `-1`。因此,如果返回值是 `-1`,则表示已经没有更多的数据可读取了。如果返回值为正数,则表示实际读取的字节数。
相关问题
resultSet.getBlob("img").getBinaryStream().read()返回值是byte[]吗
### 回答1:
?或者是什么类型?
对于这个问题,resultSet.getBlob("img").getBinaryStream().read()返回的是一个int类型的值,表示读取的下一个字节的数据,而不是byte[]类型的值。需要将这个int类型的值转换为byte,可以使用如下代码:
int value = resultSet.getBlob("img").getBinaryStream().read();
byte b = (byte) value;
### 回答2:
resultSet.getBlob("img").getBinaryStream().read()返回的是int类型的值,而不是byte[]类型。这个方法是用来读取Blob对象中的数据流,并返回一个整数值。返回的整数值表示读取的字节的数据,如果已经到达流的末尾,则返回-1。
如果想要将Blob对象中的数据转换成byte[]类型,可以使用如下的方式:
1. 首先,获取Blob对象:
Blob blob = resultSet.getBlob("img");
2. 然后,使用Blob对象的length()方法来获取Blob对象中数据的长度,并将其转换成int类型:
int length = (int) blob.length();
3. 接下来,创建一个长度为length的byte[]数组:
byte[] bytes = new byte[length];
4. 最后,使用Blob对象的getBinaryStream()方法获取数据流,将数据流中的数据读取到byte[]数组中:
blob.getBinaryStream().read(bytes);
这样就可以将Blob对象中的数据转换成byte[]类型。
### 回答3:
`resultSet.getBlob("img").getBinaryStream().read()`的返回值是`int`类型,而不是`byte[]`类型。
在Java中,`getBinaryStream()`方法返回一个输入流(`InputStream`)对象,该输入流可以用于读取二进制数据。然后,`read()`方法从输入流中读取一个字节,并将其作为`int`类型的值返回。
如果要将读取的字节存储在`byte[]`数组中,需要使用`read(byte[] b)`方法。这个方法将读取的字节存储在指定的`byte[]`数组中,并返回实际读取的字节数。因此,可以通过以下方式获取一个`byte[]`类型的数组:
```java
byte[] buffer = new byte[1024];
int bytesRead;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
while ((bytesRead = resultSet.getBlob("img").getBinaryStream().read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
byte[] byteArray = outputStream.toByteArray();
```
在上述代码中,首先创建一个大小为1024的`byte[]`缓冲区。然后,每次读取1024个字节,并将其写入到`ByteArrayOutputStream`对象中。最后,通过调用`toByteArray()`方法,将读取的字节作为`byte[]`类型的数组返回。
注意:代码示例仅供参考,实际情况可能需要根据具体需求进行适当修改。
下列不属于FileInputStream输入流的read()成员函数的是________。 A、int read (int line) B、int read (byte b[],int offset,int len) C、int read (byte b[]) D、int read ()
正确答案是 A、int read (int line)。FileInputStream中没有名为read(int line)的方法。其他选项是FileInputStream中read()方法的不同重载版本,具体说明如下:
- int read(byte[] b):从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。返回值为读入缓冲区的字节总数,如果已经到达流的末尾,则返回-1。
- int read(byte[] b, int off, int len):从输入流中读取最多len个字节的数据,并将其存储在以off偏移量开始的缓冲区数组b中。返回值为读入缓冲区的字节总数,如果已经到达流的末尾,则返回-1。
- int read():从输入流中读取下一个字节的数据。返回值为字节数据(0~255之间的整数),如果已经到达流的末尾,则返回-1。
阅读全文