微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/java/123755.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐