"Kumusta, Amigo! Ngayon ay tuklasin natin ang ilang napaka-kawili-wiling bagay: kung paano palitan ang System.in input stream ."

Ang System.in  ay isang simpleng static na variable ng InputStream , ngunit hindi ka maaaring magtalaga ng isang bagong halaga dito. Ngunit maaari mong gamitin ang System.setIn() na pamamaraan.

Una, kailangan nating lumikha ng buffer, at pagkatapos ay ilagay ang ilang mga halaga dito. Pagkatapos ay ibalot natin ito sa isang klase na marunong magbasa ng data mula sa buffer gamit ang InputStream protocol.

Ganito ang hitsura nito:

Code
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();
}

"Bilaabo! Ito ang pinakakawili-wiling halimbawa na nakita ko. Hindi ko alam na magagawa mo iyon. Salamat."

"Bahala ka, Amigo."