Java 创建临时文件

2023-12-30

名称的最大长度是多少TempFile在java中和MaximumFilesize取决于 在我们提到要创建的临时目录或其他基于java的机器上?

何时致电deleteOnExit()方法---但是这个方法有什么用,因为它会在 JVM 关闭时被调用。但是在生产中,基于服务器将 24*7 运行。因此文件将连续创建,这对于我们创建的服务器来说将是一个问题文件因为内存。


要自动清理早于(修改)X秒的临时文件...

import java.io.File;
import java.io.IOException;
import java.util.HashSet;

public class FileAutoCleaner {
    final static FileAutoCleaner singleton = new FileAutoCleaner();
    final HashSet<File> bag = new HashSet<File>();

    public static FileAutoCleaner getInstance() {
        return singleton;
    }

    // This create the temp file and add to bag for checking
    public synchronized File createTempFile(String prefix, String suffix) throws IOException {
        File tmp = File.createTempFile(prefix, suffix);
        tmp.deleteOnExit();
        bag.add(tmp);
        return tmp;
    }

    // Periodically call this function to clean old files   
    public synchronized void cleanOldFiles(final int secondsOld) {
        long now = (System.currentTimeMillis() / 1000);
        for (File f : bag) {
            long expired = (f.lastModified() / 1000) + secondsOld;
            if (now >= expired) {
                System.out.println("Deleted file=" + f.getAbsolutePath());
                f.delete();
                bag.remove(f);
            }
        }
    }

    public static void main(String[] args) throws Exception {
        FileAutoCleaner fac = FileAutoCleaner.getInstance();
        System.out.println(System.currentTimeMillis() / 1000);
        fac.createTempFile("deleteme", "tmp");
        for (int i = 0; i < 5; i++) {
            System.out.println(System.currentTimeMillis() / 1000);
            // delete if older than 2 seconds
            fac.cleanOldFiles(2);
            Thread.sleep(1000);
        }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 创建临时文件 的相关文章

随机推荐

  • Python - 从网站抓取数据时重音字符的问题

    我是 Nicola 一名 Python 新用户 没有真正的计算机编程背景 因此 我确实需要一些帮助来解决我遇到的问题 我编写了一段代码来从此网页抓取数据 基本上 我的代码的目标是从页面中的所有表中抓取数据并将它们写入 txt 文件中 这里我
  • Amazon EC2 通过优雅关闭自动缩小规模?

    我们正在考虑使用 EC2 自动扩展来应对负载峰值 在我们的例子中 我们希望根据 SQS 队列大小来扩展实例 然后随着队列大小重新受到控制而缩小实例 每条 SQS 消息都定义了一个可能长时间运行的作业 有时每条消息长达 20 分钟 必须在实例
  • 使用 moment.js 获取该月的第一个工作日

    我有一些代码使用 moment js 这是一个要求 获取该月的第一个工作日 如下所示 dateStart function var first moment startOf month switch first day case 6 ret
  • 如何将 /etc/resolv.conf 下的自定义名称服务器添加到 pod 中?

    哪个服务在 pod 的 etc resolv conf 下分配名称服务器 通常应该从主机 etc resolv conf 获取 我在 pod 的 etc resolv conf 下看到不同的名称服务器 kbernetes 上是否有任何配置
  • Pandas / xlsxwriter writer.close() 没有完全关闭excel文件

    我试图在使用 python 脚本创建 Excel 文件后手动修改它 不幸的是 如果脚本仍在运行 则在尝试使用相同名称保存脚本时会出现共享文件冲突错误消息 代码中一切都运行顺利 文件已创建 填充并保存 我可以打开它并对其进行处理 但如果脚本仍
  • symfony 5.1 捆绑迁移导致没有要处理的映射信息

    我正在 DDD 下开发 Symfony 5 1 项目 因此我对所有默认文件夹进行了一些更改 我在 src 文件夹中有 2 个包 目前我只在其中一个包中有实体 我使用命令 make user 生成了实体用户及其存储库 然后移动文件并更改命名空
  • VBA 高度持久的运行时错误 91

    我遇到的问题是 当我尝试启动宏时 我不断收到错误 代码是 Sub MAGAZINE iiii Dim IE As InternetExplorer MODIFICATION Dim els el colDocLinks As New Col
  • 请问在函数内部使用 func() 在 python 中意味着什么

    请问在函数内部使用 func 在 python 中意味着什么 例如下面的代码 def identity decorator func def wrapper func return wrapper func是赋予函数的参数identity
  • Safari 移动设备忽略阻止默认设置

    我在用e preventdefault 在谷歌地图信息窗口中的链接上 它在桌面上按预期工作 其中链接不访问href但在 Safari 上 它似乎会忽略它并访问该链接 就好像没有加载 JavaScript 一样 它显然正在加载 JavaScr
  • “对象处于不一致状态”的含义

    我曾多次遇到过 以特定方式对对象进行编码可能会导致其处于不一致的状态 一个例子是这样的question https stackoverflow com questions 4768349 builder vs decorator patte
  • 云技术的最佳概述是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 围绕云技术有很多讨论 您会推荐哪些资源来回顾云计算世界并帮助人们了解大局 and 当前的趋势 除了阅读这
  • 具有尾随返回类型的模板成员函数,即使未使用也会出错

    据我所知 模板成员函数仅在使用时才会生成 如果不是所有使用的类型都支持这样的功能 这很方便 但是 这似乎不适用于具有尾随返回类型规范的函数 下面是一个小实验 helper function for case A workaround tem
  • 如何显示未促销的 WooCommerce 产品?

    我想展示非销售产品仅意味着常规产品 排除销售产品 在 WooCommerce 中 我的页面仅显示常规产品 那么谁能告诉我该怎么做 我设法过滤掉没有销售的产品 并将下面的代码放置在if have posts args array post t
  • phpMyAdmin - 错误:关系功能被禁用

    当我想使用 phpMyAdmin 4 3 8 在设计器模式下创建两个表之间的关系时 它给我一个错误 错误 关系功能已禁用 当我尝试使用 4 1 4 时 它工作得很好 我似乎找不到应该在哪里更改设置才能在设计器模式下创建关系 任何想法 提前致
  • Paperclip S3 下载远程图像

    如何下载远程图像 http协议 url位于image remote url属性中 并通过Paperclip将其保存为S3的附件 class Product lt ActiveRecord Base require open uri attr
  • 在固定时间后中断线程,是否必须抛出InterruptedException?

    我想在固定时间后中断线程 其他人问了同样的问题 投票最高的答案 https stackoverflow com a 2275596 1310503 https stackoverflow com a 2275596 1310503 给出了下
  • 在 MacOSX (Macbook Pros) 上以编程方式读取 CPU 温度(+其他传感器数据)

    我想以编程方式从我的 MacBook Pro 2009 型号 读取 CPU 温度和任何其他有趣的传感器数据 我该怎么做 我注意到一个上一篇文章 https stackoverflow com questions 2216888 how to
  • 在 Spring 中格式化/缩进 JaxB 编组器

    我正在尝试对 Spring 中的 Jaxb2Marshaller 类的输出 XML 进行 PrettyPrint 缩进 格式化 即使我输入的属性如 Web 上其他地方所见 该文件仍然全部在一行上 这是我的 bean 声明
  • C++:我想在所有 CPP 文件之间使用这个配置类,如何初始化它?

    class Config public static int OUTPUT TO FILE static int NEED TO TRAIN static int NO FILE TRAIN static int NEED TO TEST
  • Java 创建临时文件

    名称的最大长度是多少TempFile在java中和MaximumFilesize取决于 在我们提到要创建的临时目录或其他基于java的机器上 何时致电deleteOnExit 方法 但是这个方法有什么用 因为它会在 JVM 关闭时被调用 但