在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行,应用程序意外停止。
答案 0 :(得分:0)
如docs所述,您可以使用CharsetDecoder
,特别是decode
this override。您可以通过ByteBuffer
,调用FileInputStream
,然后在其上调用getChannel
来获取来源map。为避免内存问题,您可以输出CharBuffer
,类似地映射到文件。