精华内容
下载资源
问答
  • 2021-08-13 14:56:39

    1.使用 FileUtils.delete(file); 或者 file.delete(); 去删除临时文件,发现无论如何都删除不掉
    2.使用如下方法,一般调用 System.gc();后一次就会将文件删除掉,最多不会超过十次

    			//删除临时文件
                boolean result = false;
                int tryCount = 0;
                while(!result && tryCount++ <10)
                {
                    System.gc();
                    result = file.delete();
                }
    
    更多相关内容
  • 主要介绍了java实现创建临时文件然后在程序退出时自动删除文件,从个人项目中提取出来的,小伙伴们可以直接拿走使用。
  • Ilmari Karon..50至于其他的答案注意到,与创建的临时文件File.createTempFile()会不会被自动除非你明确要求它删除.通用,可移植的方法来做到这一点是调用.deleteOnExit()上File的对象,这将安排文件删除当JVM终止.然而...

    Ilmari Karon..

    50

    至于其他的答案注意到,与创建的临时文件File.createTempFile()会不会被自动除非你明确要求它删除.

    通用,可移植的方法来做到这一点是调用.deleteOnExit()上File的对象,这将安排文件删除当JVM终止.然而,这种方法的一个小缺点是它只能在VM正常终止时起作用; 在异常终止(即VM崩溃或VM进程强制终止)时,该文件可能仍未删除.

    在Unixish系统(例如Linux)上,通过在打开临时文件后立即删除临时文件,实际上可以获得更可靠的解决方案.这是有效的,因为Unix文件系统允许在一个或多个进程仍然保持打开的情况下删除文件(取消链接,准确无误).这些文件可以通过打开的文件句柄正常访问,并且它们在磁盘上占用的空间只有在持有文件的打开句柄的最后一个进程退出后才由OS回收.

    所以这是我所知道的最可靠和最便携的方法,以确保在程序退出后正确删除临时文件:

    import java.io.File;

    import java.io.RandomAccessFile;

    import java.io.IOException;

    public class TempFileTest

    {

    public static void main(String[] args)

    {

    try {

    // create a temp file

    File temp = File.createTempFile("tempfiletest", ".tmp");

    String path = temp.getAbsolutePath();

    System.err.println("Temp file created: " + path);

    // open a handle to it

    RandomAccessFile fh = new RandomAccessFile (temp, "rw");

    System.err.println("Temp file opened for random access.");

    // try to delete the file immediately

    boolean deleted = false;

    try {

    deleted = temp.delete();

    } catch (SecurityException e) {

    // ignore

    }

    // else delete the file when the program ends

    if (deleted) {

    System.err.println("Temp file deleted.");

    } else {

    temp.deleteOnExit();

    System.err.println("Temp file scheduled for deletion.");

    }

    try {

    // test writing data to the file

    String str = "A quick brown fox jumps over the lazy dog.";

    fh.writeUTF(str);

    System.err.println("Wrote: " + str);

    // test reading the data back from the file

    fh.seek(0);

    String out = fh.readUTF();

    System.err.println("Read: " + out);

    } finally {

    // close the file

    fh.close();

    System.err.println("Temp file closed.");

    }

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    在Unixish系统上,运行它应该产生类似于以下输出:

    Temp file created: /tmp/tempfiletest587200103465311579.tmp

    Temp file opened for random access.

    Temp file deleted.

    Wrote: A quick brown fox jumps over the lazy dog.

    Read: A quick brown fox jumps over the lazy dog.

    Temp file closed.

    而在Windows上,输出看起来略有不同:

    Temp file created: C:\DOCUME~1\User\LOCALS~1\Temp\tempfiletest5547070005699628548.tmp

    Temp file opened for random access.

    Temp file scheduled for deletion.

    Wrote: A quick brown fox jumps over the lazy dog.

    Read: A quick brown fox jumps over the lazy dog.

    Temp file closed.

    但是,在任何一种情况下,程序结束后临时文件都不应保留在磁盘上.

    PS.在Windows上测试这段代码时,我发现了一个相当令人惊讶的事实:显然,仅仅保留临时文件未被封闭就足以防止它被删除.当然,这也意味着临时文件正在使用时发生的任何崩溃都会导致它被取消删除,这正是我们在这里要避免的.

    AFAIK,避免这种情况的唯一方法是确保使用块始终关闭临时文件finally.当然,你也可以删除同一个finally块中的文件.我不确定使用什么,如果有的话,.deleteOnExit()实际上会让你获益.

    展开全文
  • 如何删除Java中的临时文件

    千次阅读 2021-03-16 04:14:55
    临时文件在某些情况下,例如单元测试或某些应用程序逻辑,您可能需要创建临时文件Java中的File类提供了一个名为createTempFile()的方法。此方法接受两个String变量,它们代表临时文件的前缀(起始名称)和后缀(扩展...

    java.io包的名为File的类表示系统中的文件或目录(路径名)。此类提供了各种方法来对文件/目录执行各种操作。

    临时文件

    在某些情况下,例如单元测试或某些应用程序逻辑,您可能需要创建临时文件。

    Java中的File类提供了一个名为createTempFile()的方法。此方法接受两个String变量,它们代表临时文件的前缀(起始名称)和后缀(扩展名),以及一个File对象,该变量代表您需要在其中创建文件的目录(抽象路径)。

    示例

    以下Java 示例在路径D:/SampleDirectory中创建一个名为exampleTempFile5387153267019244721.txt的临时文件。import java.io.File;

    import java.io.IOException;

    public class TempararyFiles {

    public static void main(String args[]) throws IOException {

    String prefix = "exampleTempFile";

    String suffix = ".txt";

    //为目录创建文件对象

    File directoryPath = new File("D:/SampleDirectory");

    //创建一个临时文件

    File.createTempFile(prefix, suffix, directoryPath);

    System.out.println("Temp file created.........");

    }

    }

    输出结果Temp file created.........

    删除临时文件

    您可以使用File类以及使用Files类这两种方式删除临时文件。

    使用文件类

    File类提供了delete()方法,该方法删除当前文件或目录,并在临时文件上调用此方法。

    示例

    以下Java程序创建和删除临时文件。import java.io.File;

    import java.io.IOException;

    public class TempararyFiles {

    public static void main(String args[]) throws IOException {

    String prefix = "exampleTempFile";

    String suffix = ".txt";

    //为目录创建一个 File 对象

    File directoryPath = new File("D:/SampleDirectory");

    //创建临时文件

    File tempFile = File.createTempFile(prefix, suffix, directoryPath);

    System.out.println("Temp file created: "+tempFile.getAbsolutePath());

    //删除文件

    tempFile.delete();

    System.out.println("Temp file deleted.........");

    }

    }

    输出结果Temp file created: D:\SampleDirectory\exampleTempFile7179732984227266899.txt

    Temp file deleted.........

    使用Files类

    就像File类一样,java.nio包的Files类提供了createTempFile()方法,该方法接受两个String参数来表示前缀和后缀,并创建一个具有指定详细信息的临时文件。

    此类的delete()方法接受路径对象,并删除指定路径中的文件。

    示例

    以下Java程序使用Files类创建并删除一个临时文件。import java.io.File;

    import java.io.IOException;

    import java.nio.file.Files;

    import java.nio.file.Path;

    public class TempararyFiles {

    public static void main(String args[]) throws IOException {

    String prefix = "exampleTempFile";

    String suffix = ".txt";

    //为目录创建一个 File 对象

    File directoryPath = new File("D:/SampleDirectory");

    //创建临时文件

    Path tempFilePath = Files.createTempFile(prefix, suffix);

    System.out.println("Temp file created: "+tempFilePath.toString());

    //删除文件

    Files.deleteIfExists(tempFilePath);

    System.out.println("Temp file deleted.........");

    }

    }

    输出结果Temp file created: C:\Users\TUTORI~2\AppData\Local\Temp\exampleTempFile1192122004600989866.txt

    Temp file deleted.........

    展开全文
  • 如何在Java删除临时文件

    千次阅读 2020-05-21 01:52:04
    临时文件用于存储次要的数据和临时数据,在系统终止时应始终将其删除。 最佳实践是使用File.deleteOnExit()来做到这一点。 例如, File temp = File.createTempFile("abc", ".tmp"); temp.deleteOnExit(); ...

    临时文件用于存储次要的数据和临时数据,在系统终止时应始终将其删除。 最佳实践是使用File.deleteOnExit()来做到这一点。

    例如,

    File temp = File.createTempFile("abc", ".tmp"); 
    temp.deleteOnExit();

    上面的示例将创建一个名为“ abc.tmp ”的临时文件,并在程序终止或退出时将其删除。

    PS如果要手动删除临时文件,仍可以使用File.delete()

    package com.mkyong.file;
    
    import java.io.File;
    import java.io.IOException;
    
    public class DeleteTempFileExample
    {
        public static void main(String[] args)
        {	
        
        	try{
        		
        	   //create a temp file
        	   File temp = File.createTempFile("temptempfilefile", ".tmp"); 
        		
        	   //delete temporary file when the program is exited
        	   temp.deleteOnExit();
        	
               //delete immediate	
        	   //temp.delete();
        		
        	}catch(IOException e){
        		
        	   e.printStackTrace();
        		
        	}
        	
        }
    }

    翻译自: https://mkyong.com/java/how-to-delete-temporary-file-in-java/

    展开全文
  • 临时文件删除工具

    2014-09-09 18:05:06
    递归删除文件目录下的.bak文件,每次使用Editplus打开文件,都会产生一个.bak文件,这文件又对开发无帮助,气死人的,就写了个小程序,递归删除当前文件夹下的所有.bak文件
  • java创建临时文件

    千次阅读 2021-02-12 09:47:20
    createTempFile(String prefix, String suffix)在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。createTempFile(String prefix, String suffix, File directory)在指定目录中创建一个新的空文件...
  • 最近在生产环境上发现了临时目录堆积吃掉大量磁盘的问题,最终原因是代码有Bug,异常后未执行delete file的代码或者执行了,但是删除失败。 解决思路 将删除文件的代码放到finally块中。 确保删除文件未被使用。 ...
  • 正如其他答案所指出的,使用File.createTempFile()创build的临时文件不会自动删除,除非您明确地请求它。通用的可移植方法是在File对象上调用.deleteOnExit() ,当JVM终止时它将调度文件以进行删除。 然而,这种方法...
  • Thejava.io.File.deleteOnExit()method deletes the file or directory defined by the abstract path name when the virtual machine terminates. Files or directories are deleted in the reverse order as they ...
  • java临时文件

    2020-12-03 12:41:35
    java File的api中就提供创建临时文件的功能,这样比较方便大家使用. 方法签名: public static File createTempFile(String prefix, String suffix) 调用时可以指定文件的前缀和后缀,主要方便问题排查时使用.
  • Java中使用临时文件/文件夹

    千次阅读 2021-02-12 09:47:23
    Java NIO.2 API提供了对使用临时文件夹/文件的支持。例如,我们可以轻松地找到临时文件夹/文件的默认位置,如下所示:Java1String defaultBaseDir = System.getProperty("java.io.tmpdir");通常,在Windows中,默认...
  • 创建临时文件使用 createTempFile()方法,有以下问题需要注意: 源码 public static File createTempFile(String fileName, String suffix, File parentFile) 参数; fileName: 临时文件的名字, 生成后的文件...
  • 在sftp上传后,需要删除临时文件。发现总是删除不了。代码如下:System.out.println(file1.isFile() +" "+file1);System.out.println("是否存在"+file1.exists());boolean b = false;if(file1.exists()){b= file1....
  • Java 创建临时文件

    千次阅读 2020-03-29 14:59:31
    使用File类的...方法在默认临时目录创建临时文件,参数prefix为前缀,suffix为后缀。 完整代码 import java.io.*; public class Main { public static void main(String[] args) throws Exception { ...
  • Java中的指定目录中创建临时文件

    千次阅读 2021-02-28 19:02:50
    可以使用java.io.File.createTempFile()方法在指定目录中创建一个临时文件。此方法需要三个参数,即定义文件名的前缀,定义文件扩展名的后缀以及要在其中创建临时文件的目录。它还返回创建的临时文件的抽象路径名。...
  • 为了不生成同名的文件夹String s = UUID.randomUUID().toString();String filepath = ServletActionContext.getServletContext().getRealPath(...//创建临时文件夹private void createfile(String filename){File...
  • 文章目录删除上传到服务器的临时文件前言说明正文目的背景代码第一种实现方式第二种实现方式测试结果 删除上传到服务器的临时文件 前言 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&...
  • Java生成临时文件

    万次阅读 2018-07-10 09:33:43
    * 根据数量生成系统临时文件 */ File[] files =new File[nameAll.length]; for(int i=0;i<nameAll.length;i++){ files[i]= File.createTempFile(nameAll[i].toString(), ".jpg"); files[i].deleteOnExit(); ...
  • Java - 创建临时文件

    2021-02-07 11:56:28
    java.io.File.createTempFile(String prefix, String suffix, File directory) 在指定目录创建临时文件,调用 deleteOnExit() 可以删除由该方法创建的文件。 public static File createTempFile(String prefix, ...
  • import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Base64;...import java.util.UUID;... * 创建临时文件 * @param fileType * @return * @throws .
  • Java 操作临时文件创建与删除

    千次阅读 2019-03-06 14:14:29
    Java 的 File 类中,有一个 createTempFile(String prefix,String suffix),调用它后,会在系统默认的临时文件目录中创建一个临时文件。 prefix 表示文件名。 suffix 表示文件的后缀,形如 “.tmp”,注意这里...
  • java 创建临时文件

    2019-12-22 20:22:00
    public static void main(String[] args) { t6(); } //创建临时文件 public static void t6(){ try { //创建临时文件 File temp = File.createTempFile("t...
  • 开发过程中有时候需要创建一些项目目录下创建一些临时文件,用完后及时删除,可用如下方法 //创建临时文件 File file = null; file = new File(fileName); FileUtil.inputStreamToFile(in, file); //创建...
  • 我们有一个内容管理系统,允许我们的用户存储通过REST Web...为此,我目前将内容存储到临时文件中,并将临时文件作为附件传回.这种方法具有先前加密的存储库文件的令人讨厌的副作用,在临时目录中“以明文”存储.我知道...
  • 可以使用java.io.File.createTempFile()方法创建带有指定扩展名后缀的临时文件。此方法需要两个参数,即用于定义文件名的前缀和用于定义文件扩展名的后缀。它还返回创建的临时文件的抽象路径名。演示此的程序如下所...
  • Java NIO.2 API提供了对使用临时文件夹/文件的支持。例如,我们可以轻松地找到临时文件夹/文件的默认位置,如下所示:Java1String defaultBaseDir = System.getProperty("java.io.tmpdir");通常,在Windows中,默认...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,613
精华内容 56,645
关键字:

java删除临时文件

java 订阅