2011-07-26 195 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