java - 如果现有文件已存在,如何创建新文件?

标签 java loops new-operator infinite createfile

我想知道是否可以创建一个方法来检查当前文件是否存在,如果存在,则它会创建一个同名但+1的新文件。例如。文件,文件1,文件2,文件3。

即使我的应用程序崩溃了,这也需要发生。目前我正在使用这个

Path = xxxxxxx;
index=0;
int index = 0;
    File myFile = new File(Path);
    if(!myFile.exists()){
    myFile.createNewFile(); 
    }

    else
    {
    index++;
     this.resultPath = xxxxxxx + index;
    }

这总是返回一个无限循环,因为我的应用程序崩溃了(它应该是这样)并且索引刚刚重新启动回到 0 并且循环无限地检查索引 = 0。如有任何帮助,我们将不胜感激。

最佳答案

严格来说,这不是一个 Android 问题,因此这适用于任何类似的 Java 代码。

如果您希望有多个文件,请获取文件列表 目录并迭代以找到最大的数字。像这样的东西:

File myDir = new File("myDir");
String[] files = myDir.list();

如果目录中有其他文件,您还可以将过滤器传递给 list() 目录也是如此。

或者,如果这些文件是临时的,则实际文件名 没关系,您可以使用 File.createTempFile()。它会 自动分配一个唯一的名称。您可以指定前缀和后缀 以便您识别这些文件。

关于java - 如果现有文件已存在,如何创建新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977130/

相关文章:

javascript - React——为什么循环状态更新先于递归状态更新?

c++ - 我应该如何编写符合 ISO C++ 标准的自定义 new 和 delete 运算符?

c++ - 如何使用 new(std::nothrow) 使构造函数失败?

java - 从 testng.xml 运行测试用例时如何解决 SessionID=null 问题

java - 每当我运行 android 登录应用程序时,它都会在日志中崩溃一系列错误消息

php - 有没有更简单的方法来执行涉及 mySQL 的 PHP foreach 循环?

Python - 循环输入

c++ - 通过连续内存实现多态性

java - 当返回类型为项目的PaginatedList时,如何模拟mapper.query方法

java - 无法上传到安卓市场