तो मुझे अपने प्रोग्राम में एक टेक्स्ट फ़ाइल पढ़ने में कोई समस्या है। यहां कोड है:BufferedReader.readLine() का उपयोग थोड़ी देर में ठीक से
try{
InputStream fis=new FileInputStream(targetsFile);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
//while(br.readLine()!=null){
for(int i=0;i<100;i++){
String[] words=br.readLine().split(" ");
int targetX=Integer.parseInt(words[0]);
int targetY=Integer.parseInt(words[1]);
int targetW=Integer.parseInt(words[2]);
int targetH=Integer.parseInt(words[3]);
int targetHits=Integer.parseInt(words[4]);
Target a=new Target(targetX, targetY, targetW, targetH, targetHits);
targets.add(a);
}
br.close();
}
catch(Exception e){
System.err.println("Error: Target File Cannot Be Read");
}
जिस फ़ाइल से मैं पढ़ रहा हूं वह तर्कों की 100 पंक्तियां है। अगर मैं लूप का उपयोग करता हूं तो यह पूरी तरह से काम करता है। अगर मैं थोड़ी देर के कथन का उपयोग करता हूं (जिसने लूप के ऊपर टिप्पणी की है) तो यह 50 पर बंद हो जाता है। एक संभावना है कि कोई उपयोगकर्ता प्रोग्राम के साथ प्रोग्राम चला सकता है जिसमें कई लाइनें हैं, इसलिए लूप कार्यान्वयन के लिए मेरा वर्तमान ' टी काम नहीं
लाइन while(br.readLine()!=null)
50 पर क्यों रुकती है? मैंने टेक्स्ट फ़ाइल की जांच की है और ऐसा कुछ भी नहीं है जो इसे लटकाएगा।
जब मैं थोड़ी देर लूप का उपयोग करता हूं तो मुझे कोशिश-पकड़ से कोई त्रुटि नहीं मिलती है, इसलिए मैं स्टंप हो गया हूं। क्या किसी के भी पास कोई सुझाव है?
धन्यवाद के साथ अच्छी तरह से दिखती है! मुझे निश्चित रूप से यह ध्यान रखना चाहिए था। क्या आप जानते हैं कि कोई कामकाज क्या होगा? – billg118
'((लाइन = br.readLine())! = शून्य) जावा में वाक्यविन्यास की अनुमति है, है ना? – jpm
@jpm: हाँ; यह करने का सबसे अच्छा तरीका है। (हालांकि मैं इसे स्पष्ट करने के लिए पहले 'शून्य' रखना चाहता हूं) – SLaks