Obtains the BLOB into a specified file.
Semantically, this method is roughly equivalent to the following
code, except that the actual implementation is likely to be a lot faster.
InputStream i = getInputStream();
OutputStream o = new FileOutputStream(dst);
int ch;
while((ch=i.read())!=-1) o.write(ch);
i.close();
o.close();
The main motivation behind this method is that often
DataHandler that reads data from a streaming source
will use a temporary file as a data store to hold data
(think of commons-fileupload.) In such case this method
can be as fast as calling
File.renameTo(File) .
This method shouldn't be called when there are any
open streams.
After this method is invoked,
StreamingDataHandler.readOnce() and
StreamingDataHandler.getInputStream() will simply open the destination
file you've specified as an argument. So if you further
move the file or delete this file, those methods will
behave in undefined fashion. For a simliar reason,
calling this method multiple times will cause
undefined behavior.
|