java - 控制在 Java 中创建的临时文件的名称

标签 java file

创建临时文件时,有什么方法可以控制附加到文件名的随机数字吗? 例如。如果我编写 File.createTempFile("abc",".pdf"),它会创建一个名为 abc12323543121.pdf 的文件。除了这些数字,是否可以附加时间戳?我需要这个,因为对于我创建的每个文件,我需要将时间戳附加到文件,这使得文件名很长。所以,如果我可以只使用时间戳而不是随机生成的数字,那就太好了。

最佳答案

API好像没有直接提供这个。但是您可以查看File.createTempFile() 源代码,了解它是如何实现的,然后自己实现所需的方法。

基本上,createTempFile() 创建一个具有预期文件名的 File 对象,然后使用 FileSystem.createFileExclusively() 创建文件。如果文件已经存在,此方法返回 false,在这种情况下,文件名被修改(通过使用不同的随机数)并重试创建。

您可以采用相同的方法,但请注意 FileSystem 是一个包私有(private)类,因此您不能在自己的方法中使用它。使用 File.createNewFile()而是以原子方式创建文件。如果文件已经存在,此方法也会返回 false,因此您可以在类似的循环中使用它,例如 createTempFile() 使用 createFileExclusively() 方法。

关于java - 控制在 Java 中创建的临时文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16686320/

相关文章:

java - 获取最小时差

java - 如何正确地将 Java Maven 项目依赖项添加到 Eclipse 中的 Grails Maven 项目

java - Spark 是否在其集群中维护哈希函数?

URL 的 Java 状态 400

python - 递归扫描文件并删除python中的空目录

java - (JAVA) System.in 上的终止函数 .. 可能吗?

java - 将MP4转换为WAV

安卓;检查文件是否存在而不创建新文件

php - 为我的 PHP 脚本创建 API - 文件上传

java - Android - 获取从文件资源管理器中选择的.txt文件的真实路径