Java 1.8 及以下版本等效于 InputStream.readAllBytes()

标签 java java-8 inputstream

我编写了一个程序,它使用 Java 9 中的 InputStream 获取所有字节

InputStream.readAllBytes()

现在,我想将其导出到Java 1.8 及更低版本。有等价的功能吗?找不到。

最佳答案

InputStream.readAllBytes() 自 java 9 而非 java 7 起可用...

除此之外,您还可以(无第三方):

inputStream.reset();
byte[] bytes = new byte[inputStream.available()];
DataInputStream dataInputStream = new DataInputStream(inputStream);
dataInputStream.readFully(bytes);

或者,如果您不介意使用第三方(Commons IO):


byte[] bytes = IOUtils.toByteArray(is);

Guava 也有帮助:

byte[] bytes = ByteStreams.toByteArray(inputStream);

关于Java 1.8 及以下版本等效于 InputStream.readAllBytes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049358/

相关文章:

java - swingx 的 JXDatePicker 中的日期范围?

java - SQLException:没有为参数 9 指定值

java - 是否可以使用多个 cxf.xml 文件来配置系统的不同部分?

java-8 - 根据对象的参数化属性对对象列表进行排序

Java 8/JBoss 7 - 无法获取 bean 实例

java - 如何将 StreamEx 解包为 "Plain Old Java Stream"?

java - 我如何从java中的InputStream中提取某些模式,然后放入byteArray中

java - 如何配置 dbeaver 代理连接到私有(private) Maven 存储库

java - 发生 EOFException 时返回是否安全

java - 将输入流转换为字符串(telnet)