0

Java で次の操作を実行しているときに、Bad Base64 input character at 0: 37(decimal) 例外が発生します。

static void byteArrayToFile(byte[] bArray) {  
        try {  
            // Create file  
            String pathName = AppConfig.getInstance().getConfigValue("webapp.root") + File.separator + "temp"+File.separator+"heasas.pdf";
            FileWriter fstream = new FileWriter(pathName);  
            BufferedWriter out = new BufferedWriter(fstream);  
            for (Byte b: bArray) {  
                out.write(b);  
            }  
            out.close();  
        } catch (Exception e) {  
            System.err.println("Error: " + e.getMessage());  
        }  

こんにちは、サード パーティからの Soap メッセージを受信したときに、添付ファイルのコンテンツを取得するコードのスニペットを書きました: Object content = attachment1.getContent(); writePdf(コンテンツ);

private void writePdf(Object content) throws IOException, PrintException, DocumentException {
        String str = content.toString();
        byte[] b = Base64.decode(str);
        byteArrayToFile(b);

}

バイト配列をpdfに変換する私のロジックは次のとおりです。

static void byteArrayToFile(byte[] bArray) {  
    try {  
        // Create file  
        String pathName = AppConfig.getInstance().getConfigValue("webapp.root") + File.separator + "temp"+File.separator+"heasas.pdf";
        FileWriter fstream = new FileWriter(pathName);  
        BufferedWriter out = new BufferedWriter(fstream);  
        for (Byte b: bArray) {  
            out.write(b);  
        }  
        out.close();  
    } catch (Exception e) {  
        System.err.println("Error: " + e.getMessage());  
    }  
}

誰かが私に解決策を提案してもらえますか......

4

1 に答える 1

0

FileWriter javadocから:

FileWriter は、文字のストリームを書き込むためのものです。生バイトのストリームを書き込むには、FileOutputStream の使用を検討してください。

于 2013-01-26T06:02:08.913 に答える