2017-05-18 15 views
-1

サーブレットにFileOutputStreamという文字列を受け取りました。どのようにファイルに書き込むことができますか。ファイルにFileOutputStream(文字列として受信)を書き込みます。

文字列をバイトに変換して新しいFileOutputStreamに割り当てようとしましたが、ファイルを生成しますが、フォーマットが壊れていると言います。

私は様々なコードを試しましたが、どれも動作していません。

File file = new File("d:/file1.pdf"); 
     String content = request.getParameter("TextB1"); 

     try (FileOutputStream fop = new FileOutputStream(file)) { 

      // get the content in bytes 
      byte[] contentInBytes = content.getBytes(); 

      fop.write(contentInBytes); 
      fop.flush(); 
      fop.close(); 

      System.out.println("Done"); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+0

'TextB1'に渡されていますか?それは実際にはPDFファイルですか? – shmosel

+0

実際に私は、そのアプレットを使用していくつかのドキュメントのバリエーションを行っている間に、JavaScriptのサードパーティのアプレットからFileOutputStreamを取得しています。それを隠しフィールドに保存してフォームを送信します。今私のサーブレットでは、それを文字列として取得しています。私はそれをファイルとして保存する必要があります(pdf形式)。 –

+0

私の質問は、PDFファイルを作成する方法ではない、私は文字列内のfileoutputstreamを取得していると私はそれをファイルに書き込む必要があります。 –

答えて

0

おそらく、PDFファイルの場合はコンテンツをデコードする必要があります。このような

何かがおそらく動作するはずです:

BASE64Decoder decoder = new BASE64Decoder(); 
byte[] decodedBytes = decoder.decodeBuffer(content.getBytes()); 
+0

'sun.misc'は使用しないでください。それらはいつでも削除できる内部APIです(Java 9で期待されていると思います)。 – shmosel

関連する問題