매번 호출 될 때마다 수천 개의 문자열을 무작위로 생성하는 Java Servlet이 있습니다. 사용자가 서블릿을 호출 할 때 파일에서 가져올 수 있기를 바랍니다. 디스크 나 메모리에 파일을 먼저 쓰고 싶지 않습니다. 사용자가 서블릿을 호출 할 때 즉시 파일을 쓰는 방법이 있습니까? 감사합니다Java로 즉시 다운로드 할 텍스트 파일을 만듭니다.
답변
서블릿에서 생성하는 모든 텍스트는 ServletResponse.getOutputStream()
에 의해 반환 된 OutputStream에 간단히 작성 될 수 있습니다.
당신은 출력이 파일로 다운로드 할 수 있도록하려면, 당신은이 대답에 접근 따를 수 - 콘텐츠 형식이 text/plain
대신 다른 InputStream로부터 읽는 것이라고, https://stackoverflow.com/a/11772700/1372207가
의 차이는 것을 print(String)
메서드를 사용하여 ServletOutputStream
에 직접 String 객체를 작성하면됩니다.
StringBuffer를 사용하여 모든 문자열을 추가하고 마지막에이 작업을 수행해야합니까? out.write (myStringBuffer.toString(). getBytes()); – Oscar
나는 그것을 추천하지 않는다. 그렇게하면 불필요하게 메모리를 사용하여 전체 "파일"을 메모리에 보관할 수 있습니다. 문자열을 생성 할 때 출력 스트림에 문자열을 쓰면 참조를 해제하고 JVM에서 사용하는 메모리를 다시 사용할 수 있습니다. –
예를 들어 ServletOutputStream을 사용하고 있다면 print 메서드를 사용해야할까요? – Oscar
- 1. 다운로드 할 mod_rewrite - 의심스러운 파일을 만듭니다.
- 2. C#은 즉시 텍스트 상자 이름을 만듭니다.
- 3. 즉시 작성된 img 다운로드
- 4. Android에서 java로 mp3 파일 다운로드
- 5. 파일을 다운로드 할 파일은
- 6. 배열에 텍스트 파일을 작성한 다음 Java로 반환하십시오.
- 7. java로 jar 파일을 어떻게 다운로드합니까?
- 8. CSV를 즉시 작성하여 클라이언트로 다운로드
- 9. 텍스트 파일을 읽고 7 줄마다 'Page'를 만듭니다.
- 10. xml/text 파일에서 동적으로 텍스트 파일을 만듭니다.
- 11. 텍스트 파일 폴더가있는 이클립스에서 apk 파일을 만듭니다.
- 12. PHP/MYSQL을 사용하여 즉시 CSV 내보내기/다운로드
- 13. JTree가 새 파일을 만듭니다. 선택한 파일을 만듭니다.
- 14. ASP.NET에서 JavaScript 파일을 즉시 병합
- 15. Ruby on Rails에서 다운로드 할 문자열에서 텍스트 파일을 생성하는 방법
- 16. 5 - 10GB의 텍스트 파일을 다운로드 할 수 있습니까?
- 17. 파일을 java로 저장하는 방법은 무엇입니까?
- 18. "파일을 다운로드 할 수 없습니다."
- 19. JavaScript를 사용하여 IE7에서 텍스트 파일을 강제 다운로드
- 20. PHP에서 파일을 다운로드 할 수 없습니다.
- 21. 지정된 날짜의 텍스트 파일을 복사하는 배치 파일을 만듭니다.
- 22. PHP 스크립트에서 텍스트 파일을 강제로 다운로드
- 23. 파일을 다운로드 할 페이지가 웹 클라이언트에서 처리해야합니다.
- 24. AutoHotKey : 즉시 텍스트 바꾸기
- 25. .ai 파일을 Java로 표시
- 26. MIME 형식이 application/octet-stream 인 텍스트 파일을 만듭니다.
- 27. iText를 사용하여 Java로 PDF 생성하기. 무료 텍스트
- 28. 파일을 동적으로 생성하여 Google App Engine에서 다운로드 할 파일을 제공합니다.
- 29. 가상 메모리에 파일을 만듭니다.
- 30. 클라이언트 측 크롬에서 javascript를 사용하여 파일을 만듭니다.
디스크 * 또는 메모리에 저장하지 않으시겠습니까? 이 파일은 사용자가 다운로드 할 수있을만큼 충분히 오래 있었습니까? 이거 좀 더 자세히 설명해 주시겠습니까? – Makoto
@Makoto 글쎄, 메모리에있는 것을 의미한다면 바이트를 outputStream에 직접 쓸 수 있다고 생각했다. – Oscar
@Makoto 파일의 모든 내용이 동시에 메모리에 존재할 필요는 없습니다. 일단 출력 스트림에 쓰여지면 JVM은 문자열이 사용하는 메모리를 자유롭게 정리할 수 있습니다. 그 시점의 어떤 클래스에서도 해당 문자열에 대한 참조가 없다고 가정합니다. –