2012-05-29 24 views
7

ठीक करने के बजाय फ़ाइल लेखक ओवरराइटिंग फ़ाइलों के साथ समस्या ठीक है, मुझे टेक्स्ट फ़ाइल में एकाधिक पंक्तियां लिखने में कुछ परेशानी हो रही है।अंतराल

कार्यक्रम चलाता है, लेकिन यह नई लाइनों के लिए हर बार

का उपयोग नहीं होगा जब मैं इसे 4 बार चलाना चाहते हैं, पाठ फ़ाइल तरह दिखना चाहिए:

a 
b 
c 
d 

इसके बजाय, यह दिखाई देता है:

d 

जो इस समस्या को ठीक करने के बारे में जानता है? सभी आयात सही ढंग से आयात किए जाते हैं।

स्रोत (यह कुछ संपादित किया गया है, सब कुछ मान ठीक से परिभाषित किया गया है):

import java.io.*; 
public class Compiler { 
public static void main (String args[]) throws IOException 
{ 
    //there's lots of code here 
    BufferedWriter outStream= new BufferedWriter(new FileWriter("output.txt")); 
    outStream.newLine(); 
    outStream.write(output); 
    outStream.close(); 
} 

} 
+1

बस एक चेतावनी है, लेकिन यह खतरनाक रूप से "कोड क्या है" प्रश्न के करीब है। हालांकि, चूंकि आपने केवल मदद मांगी नहीं है (आपने दिखाया है कि आपने अभी तक क्या किया है), मैं एक अंधे आँख बदलूंगा। –

उत्तर

15

सुनिश्चित करें कि जब आप एक FileWriter का एक उदाहरण बनाने के लिए, कि आप इसे के अंत तक जोड़कर कर रहे हैं। यह this specific FileWriter constructor का उपयोग करके किया जा सकता है जो एक अतिरिक्त पैरामीटर के रूप में अतिरिक्त boolean लेता है। यह boolean फ़ाइल को ओवरराइट करने के बजाए फ़ाइल के अंत में जोड़ने के लिए FileWriter बताता है।

BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true)); 
+0

मैं जावा के इनपुट और आउटपुट के लिए थोड़ा नया हूं, तो क्या मुझे एक उदाहरण मिल सकता है? मैं अभी परीक्षण के लिए आदर्श जगह में नहीं हूं (इस वर्कस्टेशन पर कोई जेडीके या आईडीई नहीं है) – Azulflame

+1

मेरा उत्तर पहले से ही उन बदलावों को प्रदान करता है जिन्हें आपको यह काम करने के लिए आवेदन करना चाहिए। –

+0

मैंने लिखा था कि इसमें कोई कोड नहीं था। जवाब के लिए धन्यवाद। – Azulflame

2

डिफ़ॉल्ट रूप से FileWriter फ़ाइल को ओवरराइट करेगा।
new FileWriter("encoded.txt", true)
इस तरह फ़ाइल बजाय जा रहा है ओवरराइट की के साथ जोड़ दिया हो जाएगा: आप क्या करना चाहते हो सकता है निम्नलिखित तरीके से पाठक को परिभाषित है।

उम्मीद है कि इससे मदद मिलती है!

0

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

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

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