Я передаю файл из файловой системы динамически с помощью jsp
Вот мой код:
<%@ page import="java.io.*,java.util.*"
InputStream in = null;
OutputStream responseOut = null;
File file = new File(request.getAttribute("fileToServe"));
try{
in = new FileInputStream(file);
responseOut = response.getOutputStream();
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
responseOut.write(buf, 0, len);
}
}finally{
if( responseOut != null ) try {
responseOut.close();
} catch( IOException ioe ){}
if( in != null ) try {
in.close();
} catch( IOException ioe ){}
}
file.delete();
%>
Проблема, с которой я сталкиваюсь, заключается в том, что файл удаляется только при первом запуске кода, то есть после перезапуска сервера. Последующие звонки не удаляют файл.
Я использовал ProcessExplorer для отслеживания этого и, да, да, Java VM хранит этот файл, я не знаю, почему это происходит.
Мы будем работать на ОС Windows, всегда, есть ли обходной путь для этого?
В Интернете я нашел несколько ресурсов по этому поводу, но я не могу понять из них, как решить эту проблему.