Java: バイト配列からPDFを作成する必要がある 質問する

Java: バイト配列からPDFを作成する必要がある 質問する

DB2 テーブルから BLOB を取得し、それをバイト配列に変換して操作できるようにしています。バイト配列を取得して、PDFそこから を作成する必要があります。

私が持っているのは次のものです:

static void byteArrayToFile(byte[] bArray) {  
    try {  
        // Create file  
        FileWriter fstream = new FileWriter("out.pdf");  
        BufferedWriter out = new BufferedWriter(fstream);  
        for (Byte b: bArray) {  
            out.write(b);  
        }  
        out.close();  
    } catch (Exception e) {  
        System.err.println("Error: " + e.getMessage());  
    }  
}

しかし、PDF作成されたものは正しくなく、上から下まで黒い線がたくさん走っています。

実際に、基本的に同じプロセスを使用して Web アプリケーションを作成することで、正しいものを作成することができましたPDF。Web アプリケーションとコードの主な違いは次の行です。

response.setContentType("application/pdf");

つまり、バイト配列は でありPDF、それが実行可能であることはわかっていますが、 のコードではbyteArrayToFileクリーンな が作成されませんPDF

どうすればうまく動作するか、何かアイデアはありますか?

ベストアンサー1

出力を 経由で送信すると、FileWriterデータがバイトであり、FileWriterは文字を書き込むためのものであるため、出力が破損します。必要なのは以下のとおりです。

OutputStream out = new FileOutputStream("out.pdf");
out.write(bArray);
out.close();

おすすめ記事