У меня есть ответ с сервера, который содержит PDF. Что-то, как показано ниже (только что показали короткую отредактированную версию ниже):Как написать PDF-содержимое в строке в файл в java?
%PDF-1.4
%????
9 0 obj
%%EOF
Используя эту строку или массив байтов, как я могу создать файл PDF?
я уже пытался использовать следующее, но она показывает пустые страницы в PDF
OutputStream oos = new FileOutputStream("test.pdf");
oos.write(b);
Я могу видеть wholeString в консоли, которая длинная строка, начиная с% PDF-1.4 и заканчивая %% EOF , Я также пробовал читать 8192 байт и писать. Тем не менее такой же результат:
byte[] buf = wholeString.getBytes(Charset.forName("UTF-8"));
OutputStream oos = new FileOutputStream(tpath);
InputStream is = new ByteArrayInputStream(buf);
int c = 0;
while ((c = is.read(buf, 0, buf.length)) > 0) {
System.out.println();
oos.write(buf, 0, c);
oos.flush();
}
oos.close();
is.close();
Я использую EntityUtils, чтобы получить поток:
String responseBody = EntityUtils.toString(httpResponse.getEntity(), Charset.forName("UTF-8"));
Конвертируемая строка затем отправляется в другой метод, где я пытаюсь записать его в файл.
да. У меня есть oos.close() в конце. – Crusaderpyro
Если у вас есть ответ с сервера, у вас есть байты. Вы не должны преобразовывать эти байты в строку, а затем конвертировать обратно в байты, если вы можете избежать этого. Это просто просят ошибок. –
Заголовок должен выглядеть так: '% PDF-1.1 % ¥ ± ë'. Эти вопросительные знаки говорят мне, что вы испортили байты при преобразовании в строку. –