2017-05-18 7 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

실제로 그 애플릿을 사용하여 일부 문서 varification 동안 숨겨진 필드에 저장하고 양식을 제출하면서 자바 스크립트에서 타사 애플릿의 FileOutputStream을 가져오고 있습니다. 이제 서블릿에서 문자열로 사용하고 있습니다. 그리고 파일로 저장해야합니다 (pdf 형식). –

+0

내 질문에 대한 PDF 파일을 만드는 방법에 대한되지 않습니다, 나는 문자열에 fileoutputstream지고 그리고 파일에 쓸 필요가있다. –

답변

0

아마 문제는 PDF 파일 인 경우 콘텐츠를 디코딩해야하기 때문일 수 있습니다. 이 같은

뭔가 아마 작동합니다 :

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

'sun.misc'을 사용하면 안됩니다. 그것들은 언제든지 제거 될 수있는 내부 API입니다 (Java 9에서 예상되는 것으로 생각됩니다). – shmosel