title: How / when to delete a file in java?
body: <p>The problem is, user clicks a button in JSP, which will export the displayed data. So what i am doing is, creating a temp. file and writing the contents in it [ resultSet >> xml >> csv ], and then writing the contents to ServletResponse. After closing the respons output stream, i try to delete the file, but every time it returns false.</p>
  
  <p>code;</p>
  
  <pre><code>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 &gt; Integer.MAX_VALUE) {
  
              }
              byte[] bytes = new byte[size];
  
              dis.read(bytes);
              FileCopyUtils.copy(bytes, responseoutputStream );
          }
          responseoutputStream.flush();
          responseoutputStream.close();
          file.delete();
      }
  </code></pre>
  
  <p>i have used 'file.deleteOnExit();' and file.delete(); but none of them is working.</p>