2011-07-26 198 views
2

我试图做一个方法,在外部存储器上写一个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是metod在被调用时得到的参数,它包含文件名。

(出生日期这是我的Date类返回一个日期作为字符串)

+0

'如果(!idea.exists())'不包围声明 –

+1

考虑增加一个Java标记这个问题..这属于完全在java括号。 。你会得到满意的答案。 – ngesh

回答

5
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()); 
} 
+0

是的,解决方案需要更多的代码,切换代码为ntc说工作.. 谢谢:) – rafuru

+2

即使它是更多的代码,它是一个更好的做法,总是考虑一个else语句,即使它是空的,只是评论为什么它是空的(使用@ntc答案) – jmsalcido

+0

以及我只是想给他提供一个线索而不是t他的整个答案......如果它有返回语句,为什么你需要一个else语句什么也不做......它只是使它更具可读性而不会改变其实现。 – ngesh