每次调用方法时如何创建新文件?

时间:2017-03-28 08:08:10

标签: java file

在下面的代码中,我尝试设置一个应该在目录中创建文件的方法。

我尝试了两种不同的方法,但似乎没有创建文件。

也许有一些语法问题?

public void makeNewFiles() {
  Date d = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss dd-MM-yyyy");
  String ns = sdf.format(d);
  File ntf = File.createTempFile(ns, ".png", directory);
}

public void makeNewFiles() {
  Date d = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss dd-MM-yyyy");
  String ns = sdf.format(d);
  File n1 = new File(directory, pathToActualFile);
  File n2;

 if(n1.exists()) {
   n2 = new File(directory, ns + ".png");
   n2.createNewFile();
 }  
}

1 个答案:

答案 0 :(得分:2)

取决于您的操作系统,

"hh:mm:ss dd-MM-yyyy"

可能是也可能不是有效文件名(我只是避免使用空格冒号;这可能会你在许多环境中遇到麻烦)。确切地说:大多数现代操作系统接受文件名中的空格,但特别是任何类Unix文件系统在进行必须处理“spacy”文件名的命令行调用时需要特别考虑。而结肠更像是一个禁忌;至少对于Windows和Unix这样的操作系统。

然后:如果你的代码在同一秒内被多次调用;您的文件名仍然“不够好”,以保证您不会再次重新创建相同的文件。

最后:考虑在字符串中添加某种“标题”;像

ns = "whatever-" + sdf.format("hh_mm_ss_dd-MM-yyyy")