"हॅलो, अमिगो! आज आम्ही काही अतिशय मनोरंजक गोष्टी एक्सप्लोर करू: System.in इनपुट प्रवाह कसे बदलायचे ."
System.in हे एक साधे स्टॅटिक इनपुटस्ट्रीम व्हेरिएबल आहे, परंतु तुम्ही त्याला फक्त नवीन मूल्य नियुक्त करू शकत नाही. परंतु तुम्ही System.setIn() पद्धत वापरू शकता .
प्रथम, आपल्याला बफर तयार करणे आवश्यक आहे, आणि नंतर त्यामध्ये काही मूल्ये ठेवली पाहिजेत. मग आम्ही ते एका वर्गात गुंडाळू ज्याला इनपुटस्ट्रीम प्रोटोकॉल वापरून बफरमधून डेटा कसा वाचायचा हे माहित आहे.
हे असे दिसते:
कोड
public static void main(String[] args) throws IOException
{
//Put data into a string
StringBuilder sb = new StringBuilder();
sb.append("Lena").append('\n');
sb.append("Olya").append('\n');
sb.append("Anya").append('\n');
String data = sb.toString();
//Wrap the string in a ByteArrayInputStream
InputStream is = new ByteArrayInputStream(data.getBytes());
//Replace in
System.setIn(is);
//Call an ordinary method that doesn't know about our changes
readAndPrintLine();
}
public static void readAndPrintLine() throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(isr);
while (true)
{
String line = reader.readLine();
if (line == null) break;
System.out.println(line);
}
reader.close();
isr.close();
}
"बिलाबो! हे मी पाहिलेले सर्वात मनोरंजक उदाहरण आहे. मला माहित नव्हते की तुम्ही असे करू शकता. धन्यवाद."
"तुमचे स्वागत आहे, अमिगो."
GO TO FULL VERSION