readAllBytes() 在jdk8中是什么什么替换
时间: 2024-05-28 20:14:01 浏览: 155
在 JDK 8 中,可以使用 `Files.readAllBytes(Path path)` 方法来替换 `FileInputStream` 中的 `readAllBytes()` 方法。`Files.readAllBytes()` 方法将文件的所有内容读入字节数组中,而且该方法会自动关闭文件输入流。这比使用 `FileInputStream` 更简单和更安全。
相关问题
p.getInputStream().readAllBytes()无法使用readAllBytes是什么原因
在Java 8中,InputStream类没有提供readAllBytes()方法,该方法是在Java 9中引入的。如果你使用的是Java 8或更早版本的Java,则无法使用该方法。
解决方法是使用Java 8中提供的其他方法来读取InputStream的所有字节。例如,你可以使用ByteArrayOutputStream来将InputStream的所有字节读入缓冲区中,然后再使用toByteArray()方法将缓冲区中的所有字节转换为字节数组。
以下是使用ByteArrayOutputStream来读取InputStream的所有字节的示例代码:
```
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
byte[] result = buffer.toByteArray();
```
这将从InputStream中读取所有字节,并将它们存储在一个字节数组中。
ByteArrayResource resource = new ByteArrayResource(inputStream.readAllBytes()); 中inputStream.readAllBytes()的readAllBytes()是什么
`readAllBytes()` 是 Java 9 中 java.io.InputStream 接口中的一个方法,它将 InputStream 中的所有字节读入一个字节数组中,并返回该字节数组。
在上述代码中,`inputStream.readAllBytes()` 将 InputStream 中的所有字节读入一个字节数组中,然后将该字节数组传递给 `ByteArrayResource` 的构造函数,从而创建一个新的 `ByteArrayResource` 对象。这个对象可以用来表示字节数组的数据源,可以被用于各种用途,例如写入文件或者传输到网络。