java - file.exists() 和 file.createNewFile() 不能正常工作?

标签 java file-io

基本上,假设我有 File f1 = new File("C:\\somedir\\batch1.bat");File f2 = new File("C:\\somedir\\batch2.bat"); 我有 2 个 ifs

if(f1.exists() == false)
{
    showMessage("File 1 not detected, creating new...");
    f1.createNewFile();
}
else
{
    showMessage("File 1 detected, deleting it and creating new...");
    f1.delete();
    f1.createNewFile();
}

if(f2.exists() == false)
{
    showMessage("File 2 not detected, creating new...");
    f2.createNewFile();
}
else
{
    showMessage("File 2 detected, deleting it and creating new...");
    f2.delete();
    f2.createNewFile();
}

无论文件是否存在,第一个 if 执行“else”代码,第二个执行“if”部分,而不创建新文件。请帮忙!

编辑

我的 showMessage(String msg) 方法执行 System.out.println(msg) 就像你知道的那样。

最佳答案

嗯,我确定不是问题,但这样做更具可读性:

File f = new File(filePathString);
if(!f.exists()) { /* do something */ }

而不是:

if(f1.exists() == false)
    {
      ...
    }

同样在删除文件时总是检查它的返回值:

if(f.delete()) {//deleted successfully
}else {//couldnt delete
   //show error message
}

正如 PeterLawrey 所说,您应该为 createNewFile() 做同样的事情:

if(f.createNewFile()) {//created successfully
}else {//couldnt create
   //show error message
}

最后在尝试做任何事情之前总是检查权限:

if(f.canRead()&&f.canWrite()) {//can read and write free to do what is needed
   //do stuff
}else {
}

关于java - file.exists() 和 file.createNewFile() 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975548/

相关文章:

java - 跨项目指定 XSD schemaLocation 的正确或正确方法是什么?

java - Parse.com - Android - 在大对象列表中搜索 3 个对象

java - 内置类中的方法

c - fscanf() 读取错误

javascript - 如何遍历本地(服务器端)文件夹的所有元素?

java - 如何将一周的第一天和一周的最后一天设置为白色?

javascript - 使用 Javascript 在 Chrome 和/或 Firefox 中写入文件

c++ - 文件 I/O 行尾

C语言-结构体

Java 停止 MIDI 播放