2010-09-18 8 views
5

के माध्यम से फ़ाइल के अंत में लिख रहा है मैं opencsv का उपयोग कर रहा हूं और एकाधिक सत्रों के माध्यम से .csv फ़ाइल पर लिखना चाहता हूं। हालांकि हर बार जब मैं एक नया CSVWriter शुरू करता हूं तो पुरानी फ़ाइल मिटा दी जाती है। क्या मैं फ़ाइल को बदलने के बजाय फ़ाइल के अंत में लिखने के लिए CSVWriter का व्यवहार बदल सकता हूं?opencsv

उत्तर

24

ऐसा लगता है कि फ़ाइल के अंत में जोड़ने के लिए CSVWriter के बजाय FileWriter में कोई विकल्प है।

इस कोड को यह काम करता है:

mFileWriter = new FileWriter(file_path, true); 
mCsvWriter = new CSVWriter(mFileWriter); 
0

ओपनसीएसवी में एक फ़ाइल में संलग्न होना प्रतीत नहीं होता है (प्रारंभिक रूप से, यह अपेक्षाकृत सरल दिखता है), लेकिन यदि आप opencsv तक सीमित नहीं हैं तो आप JExcel को आजमा सकते हैं। JExcel में फ़ाइल में शामिल करने के लिए आपको अनिवार्य रूप से एक प्रतिलिपि बनाने की आवश्यकता है, फिर उस पर काम करें, और मूल को ओवरराइट करें। यह OpenCSV में समान हो सकता है।

संपादित करें: ऐसा लगता है कि यह आपका एकमात्र असली विकल्प है जेएक्ससेल को आजमाएं या पूरी फ़ाइल को एक सूची में पढ़ें, इसमें शामिल करें, और इसे लिखें। यदि यह स्मृति पर बहुत भारी है, तो स्ट्रीम को खोलें, भाग में पढ़ें, भाग लिखें, फिर अपना संलग्न हिस्सा लिखें।

0

यह संभव हो जाना चाहिए:

FileWriter w = new FileWriter("yourfile.csv") 
CSVWriter writer = new CSVWriter(w, '\t'); 
... 
writer.flush(); 
CSVWriter writer2 = new CSVWriter(w, '\t'); 
... 
writer2.flush(); 
w.close(); 

CSV tool from the H2 database (अस्वीकरण: मैं इसे लिखा था) भी इस का समर्थन करता है।

संबंधित मुद्दे