如何检查文件是否存在?

3

我正在尝试编写一个方法,在外部存储器上编写一个txt纯文本文件。

它可以工作!但是我想通过file.exists()方法在文件的页脚中插入创建日期。

如果存在,则不插入日期,如果不存在,则插入日期。

我的代码如下:

File idea=new File(dir,titulo+".txt");
            FileWriter writer=new FileWriter(idea);
            if (!(idea.exists())){
                texto.append("\n\n\tCreada :"+new Fecha().toString());
            }

假设dir是我的路径...
    File dir =new File(Environment.getExternalStorageDirectory(),"/CMI");

当调用该方法时,titulo是一个参数,包含文件名。

(Fecha是我的日期类,返回一个字符串形式的日期)


如果(!idea.exists()) - Nikola Despotoski
1
考虑给这个问题添加一个Java标签。这完全属于Java范畴,你会得到满意的答案。 - ngesh
2个回答

6
File idea=new File(dir,titulo+".txt");
if (!idea.exists()){
    FileWriter writer = new FileWriter(idea);
    texto.append("\n\n\tCreada :" + new Fecha().toString());
    return;
}

尝试使用上述代码。如果您说FileWriter writer = new FileWriter(idea);,它将在文件不存在时创建一个新文件。因此,exist()方法没有任何区别,并始终返回true。

2

你能否仅修改代码

File idea = new File(dir, titulo + ".txt");

if (idea.exists()){
    //do nothing
}
else {
    FileWriter writer=new FileWriter(idea);
    texto.append("\n\n\tCreada :" + new Fecha().toString());
}

是的,那个解决方案需要更多的代码,像ntc说的那样切换代码就可以了。 - Rafael Carrillo
2
即使代码是偶数,最好的做法也是考虑使用else语句,即使它是空的,只需注释说明为什么为空(使用@ntc答案)。 - jmsalcido
我只是试图给他一个提示而不是完整的答案。如果它有返回语句,为什么需要一个无用的else语句呢?这只会使代码更易读,而不会改变实现方式。 - ngesh
2
请将其视为健康讨论而不是辩论..即使我在编码方面没有足够的经验.. - ngesh
@ntc 我不知道那条评论是否是针对我说的,但我并没有对你的回答有任何意见,它很完美!我只是在分享我的经验 (“使用你的答案”意味着,只需添加它,就会非常好!) :) - jmsalcido
是的,我明白了,并且这只是澄清,再次强调我并没有说你说的话有错。:) - ngesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接