2012-06-18 74 views
5

在我向其中寫入更多信息之前,我需要刪除文件的內容。我嘗試過不同的方式,比如我刪除內容的地方,但是文件保持相同的大小,並且當我在刪除後開始寫入時,在寫入新數據之前,空白洞似乎是刪除的大小。正在刪除文件內容android

這是我已經試過......

BufferedWriter bw; 
try { 
    bw = new BufferedWriter(new FileWriter(path)); 
    bw.write(""); 
    bw.close(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 

而且我也試過這個...

File f = new File(file); 
FileWriter fw; 

try { 
    fw = new FileWriter(f,false); 
    fw.write(""); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 

是否有人可以幫我解決這個問題。

+0

你就不能刪除該文件,並創建一個新的空單? – Dalmas

+0

不,我需要是相同的文件,但感謝您的回答 – kassy

回答

0

致電close()之前,請致電flush()

FileWriter writer = null; 

try { 
    writer = ... // initialize a writer 
    writer.write(""); 
    writer.flush(); // flush the stream 
} catch (IOException e) { 
    // do something with exception 
} finally { 
    if (writer != null) { 
     writer.close(); 
    } 
} 
+0

我試過了,但它仍然是一樣的。我不明白。謝謝您的回答 – kassy

9
FileWriter (path, false) 

假會告訴筆者截斷,而不是附加給它的文件。

+0

是的,這就是我想要的,因爲我想清除文件的內容。 – kassy

+0

對不起,沒有看到那裏的第二塊代碼的錯誤。 – mbwasi

0

這可能是因爲你沒有關閉FileWriter,fw.close();你也不需要「刪除」舊數據,只需開始寫入,它會覆蓋舊數據。所以確保你到處關門。

這個工作對我來說:

File f=new File(file); 
    FileWriter fw; 
    try { 
     fw = new FileWriter(f); 
     fw.write(""); 
     fw.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    }