Android, способ чтения и манипулирования байтами? - PullRequest
0 голосов
/ 21 марта 2011

Я пытаюсь прочитать XML-файл в байтах и ​​расшифровать его.

Проблема, с которой я столкнулся, заключается в объединении байтовых буферов в результат String.

если я сделаю:

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();
        }

1 Ответ

0 голосов
/ 21 марта 2011

попробуйте этот код,

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());
...