2012-06-18 18 views
5

को हटाने से पहले मुझे एक फ़ाइल की सामग्री को हटाने की आवश्यकता है, इससे पहले कि मैं इसमें अधिक जानकारी लिखूं। मैंने अलग-अलग तरीकों की कोशिश की है, जैसे कि मैं सामग्री को हटाता हूं लेकिन फ़ाइल एक ही आकार में रहती है, और जब मैं इसे हटाने के बाद इसमें लिखना शुरू करता हूं, तो मेरे नए डेटा को लिखने से पहले एक खाली छेद हटाने का आकार प्रतीत होता है ।फ़ाइल सामग्री एंड्रॉइड

यह मैं क्या कोशिश की है है ...

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(); 
    } 
संबंधित मुद्दे