用于检查文件是否存在以及是否不创建文件的循环

时间:2014-05-07 23:07:22

标签: java for-loop save java-io

java.io.File s1 = new java.io.File("/saves/save1.sav");
java.io.File s2 = new java.io.File("/saves/save2.sav");
java.io.File s3 = new java.io.File("/saves/save3.sav");
java.io.File s4 = new java.io.File("/saves/save4.sav");

此代码将s变量设置为特定文件的位置。我正在寻找一种方法来使用for循环检查变量s +“i”是否存在,直到它发现它不存在,然后创建一个名为“save +”i“.sav”的新文件。 (+“i”表示它之后的数字。)基本上,我希望它创建一个新的保存文件,如果有的话,不会覆盖其他保存文件并给它命名为“save(save#)”的.sav”。上面的代码可能会过时。这样,我就不必编写一堆if语句,我可以将所有代码放在一个语句中。提前感谢愿意提供帮助的任何人。 -Santiago

2 个答案:

答案 0 :(得分:1)

您可以分别找出问题的两个部分,然后将它们放在一起。

首先,你想要一个循环来查看不同的文件名,这些文件名只有一个整数。您可以通过在for循环中递增整数并使用String.format()来创建路径来执行此操作:

for (int n = 1; n <= 4; n++) {
    String filePath = String.format("/saves/save%d.sav", n);
    // ....
}

在这个循环中有了每个filePath(按照你喜欢的方式设置整数范围),你只需要检查它是否存在(解释为here),如果不存在,则创建它:

for (int n = 1; n <= 4; n++) {
    String filePath = String.format("/saves/save%d.sav", n);
    File checkFile = new File(filePath);
    if (!checkFile.exists()) {
       try {
           checkFile.createNewFile();
           // If you want to write content to the file, do it here...
       } catch (IOException e) {
           e.printStackTrace();
       }
    } 
}

答案 1 :(得分:0)

File path_file = new File("/saves");
File f = null;
int i = 0;
while (f == null || f.exists()) {
    i++;
    String filename = "save" + i + ".sav";
    f = new File(path_file, filename);
}

然后f将是你的新文件。

免责声明:我还没有用Java编程一段时间。