मेरे प्रोग्राम में एकाधिक स्कैनर ऑब्जेक्ट्स का उपयोग करने का सही तरीका क्या है। उदाहरण के लिए, मैं फ़ाइल को पढ़ने के लिए स्कैनर का उपयोग करता हूं, फिर फ़ाइल में जो पाया जाता है उसके आधार पर, मैं उपयोगकर्ता इनपुट के लिए संकेत देने के लिए फिर से स्कैनर का उपयोग करता हूं। मेरे कोड का एक निकासSystem.in पर एकाधिक स्कैनर ऑब्जेक्ट्स का उपयोग कैसे करें?
....
Scanner f = new Scanner (System.in); //get the file name
String fileName = f.next();
Scanner input = new Scanner(new File(fileName));
while (input.hasNext())
{
String currentLine = input.nextLine();
if (some pattern found) {
Scanner getUserInput = new Scanner (System.in);
String userInput = getUserInput.next();
.....
}
}
....
यह काम नहीं प्रतीत होता है। क्या मुझे userInput.close()
का उपयोग करने की आवश्यकता है? मैं क्या गलत कर रहा हूं। ?
जो मुझे समझ में नहीं आता है, पहला System.in
बस फ़ाइल का नाम प्राप्त कर रहा है। उसके बाद, यह दूसरे System.in
में हस्तक्षेप क्यों करता है। input
ऑब्जेक्ट के लिए, फ़ाइल से इसकी पढ़ाई और System.in
से नहीं।
टूटी हुई लिंक दिखती है कि यह होना चाहिए -> https://www.securecoding.cert.org/confluence/display/java/FIO06-J.+Do+not+create+multiple+buffered+wrappers+on+ एक + एक + बाइट + या + चरित्र + स्ट्रीम – iX3