|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
[Java]Sostituire System.in con InputStream che legga String al posto della tastiera
Buongiorno a tutti,
ho un problema con gli Input/Output streams in Java, spero che qualcuno possa aiutarmi. Ho un oggetto chiamerò genericamente il MioOggetto che deve essere visto come una scatola nera, per interagire con questo oggetto bisogna assegnargli un input ed output stream in questo modo: Codice:
mioOggetto.setInputStream(System.in); mioOggetto.setOutputStream(System.out); Il mio problema sorge dal fatto che devo automatizzare il funzionamento realizzando un semplice bot che simuli un utente. Dunque come input deve esserci non più un reale input da tastiera bensì una String e lo stesso vale per l'output (in modo che il bot possa fare il parsing ed inviare il comando successivo più opportuno). Gli stream sono nella teoria rappresentati come dei tubi, ad esempio System.in ha da una parte del "tubo" la tastiera e dall'altra il mio oggetto/scatola nera, come posso fare ad usare delle String al posto dell'input da tastiera? Vi ringrazio in anticipo per le risposte! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Messaggi: 9538
|
Quello che devi fare è convertire una String in InputStream e viceversa un OutputStream in String.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Ci sono diversi modi per risolvere il problema.
Quello che preferisco e' - ByteArrayInputStream - ByteArrayOutputStream Crei la tua stringa di input: Codice:
StringBuilder sb = new Stringbuilder();
sb.append("Ugo dammi lo fiore");
...
Codice:
ByteArrayInputStream streamIn = new ByteArrayInputStream(sb.toString.getBytes()); ByteArrayOutputStream streamOut = new ByteArrayOutputStream(1048576); // Grande quanto ti serve- devi fare una stima Attenzione, pero': mentre per l'input stream dovrebbe essere piu' facile, (System.in e' definito come InputStream), questo potrebbe non andar bene nel caso lo stream di output che serve al tuo oggetto e' di tipo PrintStream! Se utilizzi OutputStream va tutto bene, altrimenti occorre pensarci ancora un po'
__________________
In God we trust; all others bring data |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
Quote:
Grazie! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:24.




















