我可以使用File.createTempFile()来创建具有非随机名称的文件

时间:2014-04-21 07:12:57

标签: java

我想创建一个临时文件(当应用程序关闭时会消失)并带有特定名称。我使用此代码:

f = File.createTempFile("tmp", ".txt", new File("D:/"));

这会产生类似D:\tmp4501156806082176909.txt的内容。我想要D:\tmp.txt。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

在这种情况下,请勿使用createTempFilecreateTempFile的要点是生成“垃圾”名称以避免名称分类。

您应该使用File.createNewFile()或只是写入文件。哪个更适合您的用例。然后,您可以调用File.deleteOnExit()让VM在清理文件后进行检查。

答案 1 :(得分:3)

如果您只想创建tmp.txt,则只需使用createNewFile()而不是createTempFile()创建文件。 createTempFile用于创建临时文件,这些文件在反复创建时不应具有相同的名称。

另请查看this post,其中显示了一种创建文件的简单方法。

采取上述帖子:

String path = "C:"+File.separator+"hello"+File.separator+"hi.txt";
//(use relative path for Unix systems)
File f = new File(path);
//(works for both Windows and Linux)
f.mkdirs(); 
f.createNewFile();

答案 2 :(得分:1)

尝试正则表达式

fileName = fileName.replaceAll("\\d", "");