无法创建临时文件

时间:2010-10-05 08:37:14

标签: java temporary-files

我正在使用这段代码创建一个临时文件:

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。写句是一个循环,这需要很长时间才能完成,所以问题不是文件被删除才能看到它。
任何的想法?提前致谢

4 个答案:

答案 0 :(得分:9)

  

默认值中创建一个空文件   临时文件目录,使用   给出前缀和后缀来生成   其名称。调用此方法是   相当于调用   createTempFile(前缀,后缀,null)。

您可以使用

获取操作系统的临时目录
System.getProperty("java.io.tmpdir");  

您已执行deleteOnExit()

  

public void deleteOnExit()
  请求该文件或目录   由此抽象路径名表示   删除虚拟机时   终止。将尝试删除   仅用于正常终止   虚拟机,由...定义   Java语言规范。一旦   已经请求删除,但事实并非如此   可以取消请求。这个   因此应该使用方法   在意。

     

注意:不应使用此方法   用于文件锁定,作为结果   协议不能成功   可靠。 FileLock工具应该   改为使用。

答案 1 :(得分: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();

**

答案 2 :(得分:4)

您是否查看了/tmp文件夹?

如果要在指定文件夹中创建临时文件,则需要3 param createTempFile function

答案 3 :(得分:0)

尝试刷新并关闭流。