Как уже отмечали другие, для того, что вы пытаетесь сделать, вам вообще не нужно записывать загруженный ZIP-файл в файловую систему.
Сказав это, я хотел бы указать на неправильное представление в вашем вопросе, которое также отражено в некоторых ответах.
В Java объект File
вообще не представляет файл. Скорее, он представляет файл имя или * путь ". Хотя это имя или путь часто соответствует реальному файлу, это не обязательно должно быть так.
Это может звучать как расчесывание волос, но рассмотрим следующий сценарий:
File dir = new File("/tmp/foo");
boolean isDirectory = dir.isDirectory();
if (isDirectory) {
// spend a long time computing some result
...
// create an output file in 'dir' containing the result
}
Теперь, если экземпляры класса File
представляют объекты в файловой системе, то можно ожидать, что код, создающий выходной файл, будет успешным (по модулю разрешений). Но на самом деле создание может завершиться неудачно, потому что что-то удалило «/ tmp / foo» или заменило его обычным файлом.
Надо сказать, что некоторые методов класса File
, похоже, предполагают, что объект File
соответствует реальному объекту файловой системы. Примерами являются методы получения размера файла или временных меток или для перечисления имен в каталоге. Однако в каждом случае указывается, что метод вызывает исключение, если фактический файл не существует или имеет неправильный тип для запрошенной операции.