Snarky जवाब: आप गलत क्या कर रहे हैं केवल जावा में 2 वस्तुओं पैदा कर रही है कुछ करने के लिए ... अगर आप खोज, तो आप शायद कुछ पा सकते हैं BufferedReader या ExtendedBufferReader इत्यादि का विस्तार करने वाले अधिक वर्ग, और फिर यह वास्तविक एंटरप्राइज़ जावा हो सकता है। अधिक उपयोगी जवाब:
अब जब कि मैं अपने सिस्टम से बाहर है कि मिल गया है
। जब आप इनपुट EOF, जो लिनक्स के तहत नियंत्रण-डी है System.in बंद कर दिया है और मैं MacOS लगता है, और मुझे लगता है कि नियंत्रण-जेड प्लस Windows के तहत दर्ज करें। यदि आप एंटर के लिए जांचना चाहते हैं (या अधिक विशेष रूप से, दो प्रविष्टियां ... एक अंतिम पंक्ति को समाप्त करने के लिए और एक यह इंगित करने के लिए कि आपका काम पूरा हो गया है, जो अनिवार्य रूप से http हैडल निर्धारित करता है कि http शीर्षलेख समाप्त होने पर और यह समय है http शरीर, तो @dbank के समाधान एक छोटी सी ठीक मैं स्थानांतरित करने के लिए बनाने की कोशिश करने जा रहा हूँ के साथ एक व्यवहार्य विकल्प है, जबकि के बजाय जबकि विधेय के अंदर होना चाहिए
(संपादित करें # 2:।! महसूस किया ReadLine न्यू लाइन स्ट्रिप्स, तो एक खाली पंक्ति होगा "" नई पंक्ति के बजाय, इसलिए अब मैं अपने कोड टिप्पणी के बजाय एक जवाब) के रूप में EOF सा के साथ एक और जवाब देने के लिए devolves
संपादित करें ... कि अजीब है, @dbank था जवाब दिया, जबकि मैं अपना जवाब लिख रहा था, और अगर मैंने ईओएफ विकल्प का उल्लेख नहीं किया होता तो मैं रोकता था। अपने सह को दोहराने के लिए पढ़ने के लिए लाइनों के सभी while ((line = buffer.readLine()) != null)
है
InputStreamReader instream = new InputStreamReader(System.in);
BufferedReader buffer = new BufferedReader(instream);
line= buffer.readLine();
while (line != null && !line.equals("")){
length = length + line.length();
line= buffer.readLine();
}
जब आप केवल एंटर दबाएं 'line' बराबर होगा" "रिक्त नहीं। 'line! = null' को'! line.equals ("") ' – StephenButtolph
में बदलने का प्रयास करें, इसके अलावा, बस कुछ अन्य राय प्रदान करने के लिए (उदाहरण के लिए लूप का उपयोग करना), http://codereview.stackexchange.com/questions/44135/ यह-ठीक-ठीक-उपयोग-जबकि-लाइन-आर-रीडलाइन-नल-निर्माण – Foon
मुझे कल रात एहसास हुआ क्योंकि मैं सो रहा था: आप किसके लिए लंबाई का उपयोग कर रहे हैं? एनबी कि अगर आप बिल्ली myfile करना था | जावा अपप्रोग्राम और लंबाई के मूल्य को प्रिंट करें, इससे असहमत होगा, उदा। डब्ल्यूसी प्रिंट आउट, क्योंकि आप न्यूलाइन की गिनती नहीं कर रहे हैं। यदि आपको ऐसा करने की आवश्यकता है, तो ध्यान दें कि डॉस फ़ाइलों में "\ r \ n" होगा और यूनिक्स फ़ाइलों के पास "\ n" होगा और System.getProperty ("line.separator") का उपयोग करने के लिए मेरा मूल सुझाव शायद काम नहीं करेगा क्योंकि इस बात की कोई गारंटी नहीं है कि आप उदाहरण नहीं हैं लिनक्स के तहत एक डॉस फ़ाइल पढ़ने की कोशिश कर रहा है। (इसलिए, उम्मीद है कि ऐसा करने का मतलब नहीं है) – Foon