我正在尝试以字节为单位读取XML文件并对其进行解码。
我遇到的问题是将字节缓冲区加入到字符串结果中。
如果我这样做:
output += new String(buffer);
文本在加入时已损坏。我需要插入什么样的角色来正确加入它们?
我是否正确地做到了这一点?
我使用以下代码循环访问文件并在存储之前操作缓冲区:
buffer = new byte[1024];
try {
is = getBaseContext().getAssets().open("xml/xml.xml");
} catch (IOException e) {
e.printStackTrace();
}
int r = 0;
try {
while(r != -1)
{
for(int i=0;i<buffer.length;i++)
{
r = is.read(buffer);
}
deobfuscate(buffer);
output += new String(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
试试这段代码,
buffer = new byte[1024];
try {
is = getBaseContext().getAssets().open("xml/xml.xml");
} catch (IOException e) {
e.printStackTrace();
}
int count = 0, bytesRead = 0;;
ByteArrayOutputStream bytestream = new ByteArrayOutputStream(1024 * 2);
try {
bytesRead = is.read(buffer);
while(bytesRead != -1)
{
deobfuscate(buffer);
bytestream.write(buffer, 0, bytesread);
count += bytesRead;
bytesRead = is.read(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
String output = new String(bytestream.tobyteArray());