java – 将ByteArrayInputStream的内容转换为字符串

前端之家收集整理的这篇文章主要介绍了java – 将ByteArrayInputStream的内容转换为字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我读了 this post,但我没有关注.我看到了 this,但没有看到使用ByteArrayOutputStream将ByteArrayInputStream转换为String的正确示例.

要作为String检索ByteArrayInputStream的内容,是否推荐使用ByteArrayOutputstream,还是有更好的方法

我正在考虑this example并扩展ByteArrayInputStream,并利用Decorator在运行时增加功能.任何兴趣在这是一个更好的解决方案来使用ByteArrayOutputStream?

解决方法

一个ByteArrayOutputStream可以从任何InputStream读取,最后得到一个byte [].

但是使用ByteArrayInputStream更简单:

int n = in.available();
byte[] bytes = new byte[n];
in.read(bytes,n);
String s = new String(bytes,StandardCharsets.UTF_8); // Or any encoding.

对于ByteArrayInputStream available()产生总字节数.

回答评论:使用ByteArrayOutputStream

ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[8192];
for (;;) {
    int nread = in.read(buf,buf.length);
    if (nread <= 0) {
        break;
    }
    baos.write(buf,nread);
}
in.close();
baos.close();
byte[] bytes = baos.toByteArray();

这里可能是任何InputStream.

原文链接:https://www.f2er.com/java/123755.html

猜你在找的Java相关文章