2015-06-05 11 views
5

मेरे कोड नहीं जोड़ी जा सकती है:पाठ फ़ाइल में

if(myfile.exists()) { 
    try { 
     FileOutputStream fOut = new FileOutputStream(myfile); 
     OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
     for (LatLng item : markerArrayList) { 
      myOutWriter.append(item.toString()); 
     } 
     myOutWriter.append("\n\n"); 
     myOutWriter.close(); 
     fOut.close(); 
     Toast.makeText(getBaseContext(), "Done writing ", Toast.LENGTH_SHORT).show(); 
    } catch (Exception e) { 
     Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); 
    }   
} 

जब मैं myOutWriter.append उपयोग करते हैं, क्या वास्तव में होता यह है कि हर बार जब मैं फाइल करने के लिए लिख रहा हूँ, यह पिछली सामग्री को अधिलेखित कर देता है।

+0

वहाँ नहीं है: http://developer.android.com/reference/java/io/OutputStreamWriter.html – vicolored

उत्तर

7

क्योंकि आप FileOutputStream निर्माता के संलग्न विकल्प का उपयोग नहीं है यही कारण है कि।

आप उपयोग करना चाहिए:

FileOutputStream fOut = new FileOutputStream(myfile, true); 

बजाय, जोड़कर के लिए फ़ाइल खोलने के लिए।

अन्यथा, यह पिछले फ़ाइल की सामग्री को अधिलेखित कर देता है।

+0

यह अब काम करता है। धन्यवाद – vicolored

2

उपयोग FileOutputStream के secondconstructor:

FileOutputStream(String name, boolean append)

संलग्न मूल्य के साथ के रूप में true

1
समस्या

कि कर्सर कि जगह है जहाँ OutputStreamWriter फ़ाइल में लिखने के लिए शुरू कर रहा है अंकन है पर है फ़ाइल के बहुत शुरुआत।

आप क्या करना चाहते हैं इसे FileOutputStream के वैकल्पिक निर्माता का उपयोग करके फ़ाइल के अंत में सेट करना है जिसमें बूलियन विशेषता है। तय कोड होगा:

if(myfile.exists()) { 
    try { 
     FileOutputStream fOut = new FileOutputStream(myfile, true); 
     OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
     for (LatLng item : markerArrayList) { 
      myOutWriter.append(item.toString()); 
     } 
     myOutWriter.append("\n\n"); 
     myOutWriter.close(); 
     fOut.close(); 
     Toast.makeText(getBaseContext(), "Done writing ", Toast.LENGTH_SHORT).show(); 
    } catch (Exception e) { 
     Toast.makeText(getBaseContext(), e.getMessage(), 
       Toast.LENGTH_SHORT).show(); 
    } 
} 
संबंधित मुद्दे