"Bună, Amigo! Astăzi vom explora câteva lucruri super interesante: cum să înlocuim fluxul de intrare System.in ."

System.in  este o variabilă InputStream simplă, statică , dar nu îi puteți atribui pur și simplu o nouă valoare. Dar puteți folosi metoda System.setIn().

Mai întâi, trebuie să creăm un buffer și apoi să punem niște valori în el. Apoi îl vom include într-o clasă care știe să citească datele din buffer folosind protocolul InputStream.

Așa arată:

Cod
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! Acesta este cel mai interesant exemplu pe care l-am văzut. Nu știam că poți face asta. Mulțumesc."

— Cu plăcere, Amigo.