문제는 사용자가 JSP에서 버튼을 클릭하여 표시된 데이터를 내보내는 것입니다. 그래서 제가하고있는 일은 임시 직원을 만드는 것입니다. 파일을 만들고 [resultSet >> xml >> csv]에 내용을 쓰고 그 내용을 ServletResponse에 씁니다. 응답 출력 스트림을 닫은 후에는 파일을 삭제하려고 시도하지만 false가 반환 될 때마다 삭제하려고합니다.어떻게/java에서 파일을 삭제할 수 있습니까?
코드;
public static void writeFileContentToResponse (HttpServletResponse response , String fileName) throws IOException{
ServletOutputStream responseoutputStream = response.getOutputStream();
File file = new File(fileName);
if (file.exists()) {
file.deleteOnExit();
DataInputStream dis = new DataInputStream(new FileInputStream(
file));
response.setContentType("text/csv");
int size = (int) file.length();
response.setContentLength(size);
response.setHeader("Content-Disposition",
"attachment; filename=\"" + file.getName() + "\"");
response.setHeader("Pragma", "public");
response.setHeader("Cache-control", "must-revalidate");
if (size > Integer.MAX_VALUE) {
}
byte[] bytes = new byte[size];
dis.read(bytes);
FileCopyUtils.copy(bytes, responseoutputStream);
}
responseoutputStream.flush();
responseoutputStream.close();
file.delete();
}
'file.deleteOnExit();'을 (를) 사용했습니다. 및 file.delete(); 그러나 그들 중 누구도 일하고 있지 않습니다.
메모리 버퍼로 내보내고 해당 내용을 출력 스트림에 직접 쓸 수 없습니까? –
** CSV ** 파일은 매우 유용하기 때문에 메모리에 보관하는 것이 좋지 않습니다. –
s/huse/huge : D –