Вы не можете предполагать, что сжатая строка может рассматриваться как UTF-8, так как многие возможные комбинации байтов не являются допустимыми UTF-8.Я предлагаю попробовать ISO-8859-1, который сохраняет все 8-битные значения непереведенными.
Также обратите внимание, что хотя большие фрагменты текста должны уменьшаться, небольшие строки могут увеличиваться.
Примечание. ЭтоЦикл удалит любые символы новой строки
String line;
while ((line = bufferedReader.readLine()) != null) {
outStr.append(line);
}
. Я предлагаю вместо этого копировать, используя char[]
, который не пропустит никаких символов.
char[] chars = new char[512];
for(int len; (len = reader.read(chars)) > 0;)
outStr.append(chars, 0, len);