2010-10-05 4 views
4

Я использую этот кусок кода, чтобы создать временный файл:Невозможно создать временный файл

String tmpDirectoryOp = System.getProperty("java.io.tmpdir"); 
File tmpDirectory = new File(tmpDirectoryOp); 
File fstream = File.createTempFile("tmpDirectory",".flv", tmpDirectory); 
FileOutputStream fos = new FileOutputStream(fstream); 
DataOutputStream dos=new DataOutputStream(fos); 

dos.writeChars("Write something"); 

fstream.deleteOnExit(); 

fos.close(); 
dos.close(); 

Но нет в моей папке проекта нет tmpDirectory.flv. Предложение записи находится в цикле, который занимает довольно много времени, поэтому проблема заключается не в том, что файл был удален, прежде чем я смог его увидеть.
Любая идея? Заранее спасибо

+2

Он не будет отображаться в папке "проекта", но в вашей системе временную папку. –

ответ

9

Создает пустой файл в по умолчанию каталог временного файла, используя заданный префикс и суффикс, чтобы генерировать свое имя. Вызов этого метода: эквивалент вызова createTempFile (префикс, суффикс, null).

Вы можете получить временный каталог для вашей операционной системы с помощью

System.getProperty("java.io.tmpdir"); 

Вы выполнили deleteOnExit()

общественности недействительным deleteOnExit()
запросы о том, что файл или каталог обозначенном по этому абстрактному пути будет удален при виртуальной машине завершается. При удалении будет предпринята попытка только для нормального завершения виртуальной машины , как определено спецификацией языка Java . После было отправлено исключение, это не можно отменить запрос. Поэтому этот метод следует использовать с уходом .

Примечание: этот метод не следует использовать для блокировки файлов, так как в результате протокол не может быть сделано, чтобы работать надежно. Вместо этого следует использовать средство FileLock: .

+0

с вашим советом, у меня есть tmpDirectory.flv в моем каталоге tmp ??У меня его нет –

+0

@mujer esponja Обновлен ответ –

+0

Спасибо @ org.life.java действительно помог мне –

4

Вы смотрели в папку /tmp?

Если вы хотите, чтобы создать временный файл в указанной папке, вам нужно 3 param createTempFile function

5

!! Пожалуйста, закройте потоки!

File fstream = File.createTempFile("tmpDirectory",".flv"); 
FileOutputStream fos = new FileOutputStream(fstream); 
DataOutputStream dos=new DataOutputStream(fos); 

dos.writeChars("Write something"); 

fstream.deleteOnExit(); 

**

fos.close(); 
dos.close(); 

**

+0

Да, все готово, но я не хотел переполнять свой пост:) –

Смежные вопросы