我需要将一个字节数组转换为ByteArrayOutputStream,这样我就可以在屏幕上显示它。
我需要将一个字节数组转换为ByteArrayOutputStream,这样我就可以在屏幕上显示它。
byte[] bytes = ....;
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);
方法描述:
将从指定的字节数组中,从偏移量 off 开始的 len 个字节写入此字节数组输出流。
将从指定的字节数组中,从偏移量 off 开始的 len 个字节写入此字节数组输出流。
使用 JDK/11,您可以使用 writeBytes(byte b[])
API,该API最终调用建议中的write(b, 0, b.length)
,参见Josh的答案。
/**
* Writes the complete contents of the specified byte array
* to this {@code ByteArrayOutputStream}.
*
* @apiNote
* This method is equivalent to {@link #write(byte[],int,int)
* write(b, 0, b.length)}.
*
* @param b the data.
* @throws NullPointerException if {@code b} is {@code null}.
* @since 11
*/
public void writeBytes(byte b[]) {
write(b, 0, b.length);
}
示例代码将简单转换为--
byte[] bytes = new byte[100];
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.writeBytes(bytes);
writeBytes(byte[])
和write(byte[])
有什么区别? - osveinbyte[] bytes = ...
String text = new String(bytes, "UTF-8"); // or some other encoding.
// display text.
你可以让 ByteArrayOutputStream 做类似的事情,但这不是显而易见的、高效的或最佳实践(因为你不能控制所使用的编码)
ByteArrayInputStream
而不是ByteArrayOutputStream
?ByteArrayOutputStream
是用来接收数据的。 - Jon Skeet