创建tempFile时,有没有办法控制附加到文件名的随机数字?例如.如果我写File.createTempFile("abc",".pdf"),它会创建一个名字的文件abc12323543121.pdf.可以附加时间戳而不是这些数字吗?我需要这个,因为对于我创建的每个文件,我需要将时间戳附加到文件,这使得文件名很长.因此,如果我只能使用时间戳,而不是随机生成的数字,那将非常棒.
您可以创建自己的实用程序方法来创建临时文件.基本上临时文件存储在临时目录中,如下所示:
public File createTempFile(String prefix, String suffix){
String tempDir = System.getProperty("java.io.tmpdir");
String fileName = (prefix != null ? prefix : "" ) + System.nanoTime() + (suffix != null ? suffix : "" ) ;
return new File(tempDir, fileName);
}
Run Code Online (Sandbox Code Playgroud)
似乎API没有直接提供这个.但是您可以查看File.createTempFile()源代码以了解它是如何实现的,然后自己实现所需的方法.
基本上,createTempFile()创建一个File具有预期文件名的对象,然后使用它FileSystem.createFileExclusively()来创建文件.false如果文件已存在,则此方法返回,在这种情况下,文件名被修改(通过使用不同的随机数)并重试创建.
您可以遵循相同的方法,但请注意,这FileSystem是一个包私有类,因此您不能在自己的方法中使用它.File.createNewFile()而是使用原子方式创建文件.false如果文件已经存在,此方法也会返回,因此您可以在类似的循环中使用它,就像createTempFile()使用该createFileExclusively()方法一样.
| 归档时间: |
|
| 查看次数: |
8794 次 |
| 最近记录: |