PDFを含むサーバーからの応答があります。文字列のPDFコンテンツをJavaのファイルに書き込む方法は?
%PDF-1.4
%????
9 0 obj
%%EOF
この文字列またはバイト配列を使用して、私はpdfファイルを作成する方法を以下に示すような何かが(真下短い編集されたバージョンを示しますか)?
私はすでに次を使用しようとしましたが、それは私が長い文字列であるコンソールのwholeStringは、%PDF-1.4から始まり、%% EOFで終わる見ることができるPDFファイルで空白のページ
OutputStream oos = new FileOutputStream("test.pdf");
oos.write(b);
を示し。私も8192バイトを読み込み、書き込みしようとしました。それでも同じ結果:私はストリームを取得するためにEntityUtilsを使用しています
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();
:
String responseBody = EntityUtils.toString(httpResponse.getEntity(), Charset.forName("UTF-8"));
変換された文字列は、その後、私は、ファイルに書き込みしようと別の方法に送信されます。 常にバイトとしてでてくるあなたのプログラムに入ってくる
byte[] entityBytes = EntityUtils.toByteArray(httpResponse.getEntity());
Files.write(Paths.get("test.pdf"), entityBytes);
何か:
はい。私は最後にoos.close()を持っています。 – Crusaderpyro
サーバーからの応答がある場合は、バイト数があります。これらのバイトを文字列に変換してから、それを避けることができればバイトに変換してはなりません。それはバグを求めているだけです。 –
ヘッダーは '%PDF-1.1 %¥± 'のようになります。これらの疑問符は、文字列に変換するときにバイトを破損していることを示しています。 –