संलग्न नहीं कर रहा है निम्न विधि केवल मेरे द्वारा जोड़े गए नवीनतम आइटम को लिखती है, यह पिछले प्रविष्टियों में शामिल नहीं होती है। मैं क्या गलत कर रहा हूं?प्रिंटवाइटर एपेंड विधि
public void addNew() {
try {
PrintWriter pw = new PrintWriter(new File("persons.txt"));
int id = Integer.parseInt(jTextField.getText());
String name = jTextField1.getText();
String surname = jTextField2.getText();
Person p = new Person(id,name,surname);
pw.append(p.toString());
pw.append("sdf");
pw.close();
} catch (FileNotFoundException e) {...}
}
यह नींद की धागा, उस के लिए बहुत माफी जागरण की तरह है। लेकिन मुझे संदेह है। अगर मुझे केवल फाइल ऑब्जेक्ट दिया गया है, तो मैं फ़ाइल में ऑपरेशन कैसे जोड़ूं, और मुझे स्ट्रीम क्लासेस (जैसे FileOutputStream और इसी तरह) का उपयोग करने की अनुमति नहीं है। मुझे क्या अनुमति है: Printwriter pw = new PrintWriter (फ़ाइल); : मैंने संलग्न(), लिखना(), प्रिंट() की कोशिश की। इस परिदृश्य में संलग्न करने के लिए कोई रेडीमेड विधि है। –
एक स्पष्टीकरण के रूप में, प्रिंटवाइटर की 'संलग्न()' विधि इस तथ्य को संदर्भित करती है कि यह लेखक के लिए संलग्न है iee i।ई यह स्वयं का आउटपुटस्ट्रीम है, न कि फाइल के लिए। –
और @ user1707035 के प्रश्न के संदर्भ में, नहीं, ऐसा लगता है कि आप आउटपुटस्ट्रीम ऑब्जेक्ट के निर्माण के बिना इसे प्रिंट करने के लिए प्रिंटवाइटर का उपयोग नहीं कर सकते हैं। ऐसा इसलिए है क्योंकि PrintWriter इसके तत्कालता के समय स्ट्रीम खोलता है, और एकमात्र रचनाकार जो फ़ाइल या फ़ाइल नाम को तर्क के रूप में समर्थन देते हैं, फ़ाइल को 'एपेंड' पैरामीटर के बिना बाहरी रूप से आउटपुटस्ट्रीम ऑब्जेक्ट का निर्माण करके फ़ाइल खोलते हैं। संदर्भ (दस्तावेज़): https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#PrintWriter(java.io.File) –