在Java中,如何将InputStream转换为字节数组(byte )?
我的背景是.net,我对Java很新。 我正在为我们公司的java团队做一些工作,架构师需要我实现一个带有InputStream(java.io)对象的方法。 为了实现方法的目的,我需要将其转换为字节数组。 是否有捷径可寻?
最简单的方法是创建一个新的ByteArrayOutputStream
,将字节复制到该字节,然后调用toByteArray
:
public static byte[] readFully(InputStream input) throws IOException { byte[] buffer = new byte[8192]; int bytesRead; ByteArrayOutputStream output = new ByteArrayOutputStream(); while ((bytesRead = input.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } return output.toByteArray(); }
一个简单的方法是使用org.apache.commons.io.IOUtils.toByteArray( inputStream )
,参见apache commons io 。
- java.lang.NoSuchMethodError:使用Mockito和Junit时的javax.servlet.http.HttpServletRequest.isAsyncStarted()
- 如何以编程方式找出我的PermGen空间使用情况?
- Spring:将属性文件注入map
- Java中“this”或私有对象的同步?
- 哪个更快? 更多可运行的工作更少,或者更少的可运行工作? (ExecutorService的)
- 为什么我对winapi GetWindowPlacement的调用失败(使用JNA)?
- jOOQ和autogeneration,如何避免表POJO中的UDT记录
- Java中C#ObservableCollection的等价物
- java.lang.IllegalStateException:BindingResult和bean名称’user’的普通目标对象都不可用作请求属性