首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中将字节编码为字符串

如何在Java中将字节编码为字符串
EN

Stack Overflow用户
提问于 2012-07-12 01:24:45
回答 6查看 2.8K关注 0票数 1

我正在尝试将输入流中的字节编码为纯文本字符。因此,我将字符串由空格分隔的整数组成,如下所示:

代码语言:javascript
复制
InputStream in;
//etc
int b;
String finalString="";
while((b=in.read())!=-1)finalString+=""+b+" ";
in.close()

但问题是,这使得字符串比原始字节大3-4倍。有没有其他方法可以把字节编码成纯文本?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-12 01:29:10

如果我理解正确的话,您希望将二进制数据转换为纯文本。为此,您应该使用Base64。损失因子将只有4/3。

Apache commons-codec有一个免费的Base64编码器(和解码器)实现。

另一种可能是十六进制编码( commons-codec也支持),但它需要为每个字节的二进制数据提供2字节的文本。

票数 2
EN

Stack Overflow用户

发布于 2012-07-12 01:26:36

如果您可以将所有这些都放到一个byte[]中,那么这应该是

代码语言:javascript
复制
new String(byteArray, StandardCharsets.UTF_16LE);

或者您希望输入使用的任何字符编码。

票数 1
EN

Stack Overflow用户

发布于 2012-07-12 01:28:38

您可以获取所有字节并将它们放入一个字节数组中,然后使用字节数组创建字符串。

代码语言:javascript
复制
String newString = new String(byteArray);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11438075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档