मैं इनपुट फ़ाइल की प्रत्येक पंक्ति के माध्यम से जाने के लिए BufferedReader और PrintWriter का उपयोग कर रहा हूं, कुछ पंक्तियों में बदलाव करता हूं, और परिणाम आउटपुट करता हूं। यदि कोई रेखा किसी बदलाव से गुजरती नहीं है, तो यह केवल आउटपुट फ़ाइल के रूप में मुद्रित होती है। हालांकि किसी कारण से, प्रक्रिया समय-समय पर समाप्त होती है। मेरी इनपुट फ़ाइल के अंत की ओरBufferedReader/PrintWriter के साथ समस्याएं?
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
FileOutputStream out = new FileOutputStream("out.txt");
PrintWriter p = new PrintWriter(out);
String line = in.readLine();
while(line!=null)
{
if(line is special)
do edits and p.println(edited_line);
else
p.println(line);
line = in.readLine();
}
हालांकि, कुछ अजीब कारण के लिए, इस प्रक्रिया को समय से पहले ही समाप्त हो जाती है (वास्तव में एक लाइन का आधा बाहर प्रिंट): कोड कुछ इस तरह लग रहा है। इसके लिए कोई स्पष्ट कारण? जबकि लूप स्पष्ट रूप से एक शून्य से समाप्त हो रहा है। और यह मेरी 250k + लाइन txt फ़ाइल के अंत की ओर है। धन्यवाद!
आप पूरी तरह सुनिश्चित करें कि कोई अपवाद नहीं फेंक दिया जा रहा है कर रहे हैं बंद करने के लिए अपने प्रक्रिया के अंत में
out.close()
(संभवतः एकp.flush()
रूप में अच्छी तरह?) की जरूरत है? अगर अपवाद * फेंक दिया गया तो आप क्या करेंगे? क्या यह लॉग होगा? –जॉन - यह न भूलें कि प्रिंटवाइटर अपवादों को झुकाता है - आपको यह देखने के लिए "चेकइरर" विधि का उपयोग करना होगा कि कोई हुआ या नहीं। – MetroidFan2002
हां, लेकिन BufferedReader और FileReader नहीं करते हैं - इसलिए पढ़ने के लिए कॉललाइन() फेंक सकता था। –