2011-12-13 18 views
6

में नए सिरे से लिखना मैं इस तरह एक साधारण समारोह में लिखें। मैं इसे फिर से लिखने के लिए कैसे बदल सकता हूं? file चर को वैश्विक रूप से File के रूप में परिभाषित किया गया है।एक फ़ाइल

उत्तर

3

अपने FileOutputStreamconstructor पर, आप boolean append पैरामीटर जोड़ना। यह तो इस तरह दिखेगा:

FileOutputStream fop = new FileOutputStream(file, true); 

यह बताता है कि यह FileOutputStream बजाय साफ करने और अपने मौजूदा डेटा के सभी को फिर से लिखने की फ़ाइल संलग्न करना होगा।

+0

हाँ, यह सही था, धन्यवाद – seventeen

+0

लेकिन अभी भी एक छोटी सी समस्या है, यह कोई जगह नहीं बनाता है, यह आखिरी चरित्र के ठीक बाद लिखता है, इसलिए यह पठनीय नहीं होगा, मैं इसे प्रत्येक लेखन के बाद एक जगह देने के लिए कैसे बना सकता हूं? – seventeen

+1

चेंज 'fop.write (...) 'to' fop.write (... + "\ n") ' – Jon

2

कंसक्टर का उपयोग करें जो पैरामीटर के रूप में ध्वज लेता है।

FileOutputStream fop=new FileOutputStream(file, true); 
+0

कि सही था, धन्यवाद – seventeen

+0

लेकिन अभी भी एक छोटे से समस्या से परोक्ष किया जाएगा, यह does not किसी भी जगह बनाने के लिए, यह वास्तव में अंतिम वर्ण के बाद लिखते हैं तो यह होगा पठनीय नहीं है, मैं इसे प्रत्येक लेखन – seventeen

+0

@MostafaAlli के बाद एक जगह देने के लिए कैसे बना सकता हूं: फिर ** लिखें ** स्पेस –

0

यदि आपके कुछ बाइट ऑफसेट पर लिखने की कोशिश कर RandomAccessFile की कोशिश करो।

+1

यह आवश्यक रूप से एक निश्चित ऑफसेट नहीं है, वह बस फ़ाइल संलग्न करना चाहता है। – Jon

0

टो पैरामीटर कन्स्ट्रक्टर सही है। और यह अनावश्यक है:

if(!file.exists()) { 
     file.createNewFile(); 
} 

कन्स्ट्रक्टर यह आपके लिए करेगा।

1

आपको फ़ाइल को append मोड में खोलना चाहिए, डिफ़ॉल्ट रूप से FileOutputStreamwrite मोड में फ़ाइल खोलता है। और तुम file के होने की जाँच की जरूरत नहीं है, यह FileOutputStream

private static void write(String Swrite) throws IOException { 
    FileOutputStream fop=new FileOutputStream(file, true); 
    if(Swrite!=null) 
     fop.write(Swrite.getBytes()); 
    fop.flush(); 
    fop.close(); 
} 
संबंधित मुद्दे