当前位置: 首页 > 知识库问答 >
问题:

如何更正File.exists()方法[duplicate]

冀崇凛
2023-03-14

我正在使用.exists()方法来确保文件不存在,如果存在,它会向文件添加一个数字。但是,使用原始文件名创建文件是不起作用的,并且在创建另一个文件时基本上覆盖了先前的文件名。

int count = 1;
String name = "myFileName" + count;
String path = "/pathway/";
String ext = ".txt";

File file = new File(path + name + ext);
if (file.exists()) {
System.out.println("file found!");
name = "myFileName" + (count++);
file = new File(path + name + ext); }

System.out.println("wrote file: " + name); 

[1:47:40:359]已写入文件:myFileName1

[1:47:40:361]已写入文件:myFileName1

共有1个答案

文建业
2023-03-14

您的错误是count++。后置的++运算符首先“返回”该值,然后递增该值。您需要首先递增,然后返回。使用带前缀的++运算符执行此操作:++count

while循环应该有助于确保创建一个新文件,即使前一个文件存在,即使第二个或第三个文件也存在。

int count = 1;
String name = "myFileName" + count;
String path = "/pathway/";
String ext = ".txt";
File file = new File(path + name + ext);

while (file.exists()) {
    System.out.println("file found!");
    name = "myFileName" + (++count);
    file = new File(path + name + ext);
}

System.out.println("wrote file: " + name); 
 类似资料:
  • 问题内容: 我从没想过会发生这种情况,但是遇到了我的第一个Java错误: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595 我几乎与错误(在Linux上为NFS)中描述的情况完全相同,并且我看到File.exists()没有返回正确的值(至少不是立即返回)。 所以我的问题是,这种检查文件是否存在的方法是否可以替代?如果可能的话,我

  • 问题内容: 我无法想到该方法或Java 7中等效方法的实际用例。看来,或会在所有情况下最好(或,等等)。 例如,如何检查Java中是否存在文件?,第二个答案指出,接受的答案似乎很愚蠢。 任何人都可以举一个例子,在 不 知道某物是文件还是目录的 情况 下,知道某物存在是有用的吗? 编辑:我知道做什么。我的问题是,该功能 何时 能帮助某人?我正在搜索一个示例,例如“ 在_ _ _ _ _时使用,因为在

  • 我正在准备Java认证,显然我不能正确回答这个答案。 给定: 它在第11行独立插入,为Chilis实现equals()和hashCode()契约?(选择所有适用内容。) A。public int hashCode(){return 7;} B。public int hashCode(){return hotness;} C。public int hashCode(){return color.le

  • 我正在尝试获取与登录用户在同一年级的同学列表。 我有这个功能 但我得到了错误: 原因:异常[EclipseLink-6069](Eclipse Persistence Services-2.5.0.V20130507-3FAAC2B):org.Eclipse.Persistence.exceptions.QueryException异常说明:此表达式中的字段[Rocnik.IdRocnik]在此上

  • 问题内容: 我需要在我的没有超类的对象中实现一个深层克隆。 处理超类(即Object)引发的检查的最佳方法是什么? 一位同事建议我按以下方式处理: 对于我来说,这似乎是一个不错的解决方案,但我想将其扔给StackOverflow社区,以查看是否有我可以提供的其他见解。谢谢! 问题答案: 您绝对必须使用吗?大多数人都同意是坏的。 Josh Bloch谈设计-复制构造函数与克隆 如果您已经阅读了我书中

  • 我正在使用 在我的代码中,用于规范化签名的行如下所示: 我的问题是,这种方法留给我的是一个使用method