当前位置: 首页 > 面试题库 >

将ByteArrayInputStream的内容转换为字符串

高正初
2023-03-14
问题内容

我读了这篇文章,但我没有关注。我已经看到了,但还没有看到将转换ByteArrayInputStreamString使用的正确示例ByteArrayOutputStream

要检索的内容ByteArrayInputStreamString,使用ByteArrayOutputstream推荐的还是有一个更可取的方法?

我正在考虑这个示例,并扩展ByteArrayInputStream并利用Decorator在运行时增加功能。是否有兴趣将其作为使用ByteArrayOutputStream?的更好解决方案?


问题答案:

A ByteArrayOutputStream可以读取任何内容InputStream,最后得到a byte[]

但是,使用a ByteArrayInputStream更简单:

int n = in.available();
byte[] bytes = new byte[n];
in.read(bytes, 0, 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, 0, buf.length);
    if (nread <= 0) {
        break;
    }
    baos.write(buf, 0, nread);
}
in.close();
baos.close();
byte[] bytes = baos.toByteArray();

这里可以是任何InputStream。

由于Java 10也有一个ByteArrayOutputStream#toString(Charset)

String s = baos.toString(StandardCharsets.UTF_8);


 类似资料:
  • 问题内容: 不知道我应该怎么做。任何帮助,将不胜感激 问题答案: 从输入流中读取并写入ByteArrayOutputStream,然后调用其以获得字节数组。 在字节数组周围创建一个ByteArrayInputStream以便从中读取。 这是一个快速测试:

  • 我是java编程新手。我的问题是,我有一个字符串数组,但当我想在计算中使用内容时,我不断得到错误: 我的代码是:

  • 我想发送一个内联SVG图像到PHP脚本转换为PNG与Imagick.为此,我必须知道如何在内联SVG上获得一个Base64字符串。对于画布对象,它是一个简单的“. toDataURL()”,但这不适用于内联SVG,因为它不是元素的全局函数。 http://jsfiddle.net/nikolang/ccx195qj/1/ 但是如何为内联SVG实现这一点?

  • 更新: 错误:< code>jbyte* elements = (*env)- 我刚到JNI,所以我不熟悉JNI和英语。 现在,我尝试用Java编写简单的JNI文件读取程序,并用c语言将其写入文件 文件读取 文件编写C代码: 我已经尝试了许多解决方案(下面的链接),但没有运气将其写入文件。请提供正确的解决方案和最佳的JNI教程网站。 已经尝试解决方案:(但不成功) 将java中的字节[]转换为C中

  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字