如何将整个InputStream读入字节数组?

推荐答案

您可以使用ApacheCommons IO来处理这个和类似的任务.

IOUtils类型有一个静态方法来读取InputStream并返回byte[].

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

这会在内部创建一个ByteArrayOutputStream,并将字节复制到输出,然后调用toByteArray().它通过在4KB的块中复制字节来处理大型文件.

Java相关问答推荐

试图弄清楚资源未能在我的Android应用程序中调用关闭警告

OpenJDK、4K显示和文本质量

当一个链表中间有一个循环时,它的松散部分会发生什么?

JVM会优化这个数学运算吗?

对运行在GraalVM-21上的JavaFX应用程序使用分代ZGC会警告不支持JVMCI,为什么?

当涉及到泛型时,类型推理在Java中是如何工作的?

在Java中如何从Executors.newFixedThreadPool(MAX_THREAD_COUNT())迁移到虚拟线程

JOOQ中的子查询使用的是默认方言,而不是配置的方言

MySQL数据库中未应用具有Spring数据的唯一约束

从ActiveMQ Classic迁移到ActiveMQ Artemis需要进行哪些客户端更改?

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

Java泛型类方法的静态返回类型是否被类型擦除?

无法播放音频:从资源加载库GStreamer-Lite失败

删除打印语句会影响功能...腐败在起作用?

A.ForEach与For(类型a:集合)

为什么创建Java动态代理需要接口参数

通过/失败的参数化junit测试方法执行数

如何在Struts2中使用操作类中的结果注释重定向到不同的命名空间

Java递归泛型是否可以被视为继承和重写的语法糖

如何使用外部函数从Java中获取C++ struct 的返回值&;内存API