"வணக்கம், அமிகோ! இன்று நாம் சில சூப்பர் சுவாரஸ்யமான விஷயங்களை ஆராய்வோம்: System.in உள்ளீட்டு ஸ்ட்ரீமை மாற்றுவது எப்படி ."

System.in  என்பது ஒரு எளிய நிலையான InputStream மாறி, ஆனால் அதற்கு புதிய மதிப்பை நீங்கள் ஒதுக்க முடியாது. ஆனால் நீங்கள் 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();
}

"பிலாபோ! இது நான் பார்த்ததிலேயே மிகவும் சுவாரஸ்யமான உதாரணம். உங்களால் இதைச் செய்ய முடியும் என்று எனக்குத் தெரியவில்லை. நன்றி."

"நீங்கள் வரவேற்கப்படுகிறீர்கள், அமிகோ."