加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

获得对在Java中创建的临时文件名称的控制

发布时间:2020-12-15 00:00:05 所属栏目:Java 来源:网络整理
导读:创建tempFile时,有没有办法控制附加到文件名的随机数字? 例如.如果我写File.createTempFile(“abc”,“.pdf”),它会创建一个名为abc12323543121.pdf的文件.可以附加时间戳而不是这些数字吗?我需要这个,因为对于我创建的每个文件,我需要将时间戳附加到文件,
创建tempFile时,有没有办法控制附加到文件名的随机数字?
例如.如果我写File.createTempFile(“abc”,“.pdf”),它会创建一个名为abc12323543121.pdf的文件.可以附加时间戳而不是这些数字吗?我需要这个,因为对于我创建的每个文件,我需要将时间戳附加到文件,这使得文件名很长.因此,如果我只能使用时间戳,而不是随机生成的数字,那将非常棒.

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读