在java中将字节数组转换为String支持字符集的算法

时间:2011-09-11 06:36:13

标签: android string bytearray

在java中,您可以使用以下代码将字节数组转换为字符串。

new String(bytes, "UTF-8");

此方法存在超过900 KB的文件问题。

在我的情况下,我有一个WebService发送文件

WebService: File-> Base64-> encrypted string

在android中我想得到这个文件:

Android: encrypted string-> decrypted string -> Base64 -> file

我在解密行中有新问题(字节,“UTF-8”);对于超过900 MB的文件。

我想实现这个方法。任何人都可以给我这个方法的源代码吗?

如果忽略Charset,很容易将字节数组转换为字符串。

for (int i = 0; i < bytes.length; i++) {
    myString += (char) byteArray[i];
}

我担心这个字符集。 有谁能够帮我?


修改

我写了以下代码:

Charset charsetInput = Charset.forName("UTF-8");
CharsetDecoder decoder = charsetInput.newDecoder();
CharBuffer cbuf = decoder.decode(ByteBuffer.wrap(bytes));
String result = cbuf.toString();

但没有改变。 在第3行,应用程序意外停止。

1 个答案:

答案 0 :(得分:0)

docs所述,您可以使用CharsetDecoder,特别是decode this override。您可以通过ByteBuffer,调用FileInputStream,然后在其上调用getChannel来获取来源map。为避免内存问题,您可以输出CharBuffer,类似地映射到文件。