Ciao a tutti!!!
Come faccio a dirigere la System.out su una stringa???
Ciao a tutti!!!
Come faccio a dirigere la System.out su una stringa???
http://www.myspace.com/lacerhate
'out' è poi semplicemente un campo static di System. Il campo non lo puoi cambiare direttamente, devi usare setOut(PrintStream out).Originariamente inviato da ddr.house
Come faccio a dirigere la System.out su una stringa???
La questione quindi è solo quella di creare un PrintStream su cui mandare l'output scritto su System.out.
PrintStream può scrivere su un file o in generale su un OutputStream (vedi documentazione suoi costruttori). Scartando la scrittura su file, rimane l'uso di un OutputStream. Che però è "orientato" ai byte ... non ai caratteri (e nemmeno String!).
Una soluzione potrebbe essere quella di creare un ByteArrayOutputStream da passare al PrintStream. Quindi tutto quando si accoda nel ByteArrayOutputStream e poi quando vuoi, prendi il buffer di byte e ne crei una stringa. Unica questione: il charset!! ByteArrayOutputStream non "sa" nulla di caratteri e charset ... accoda solo byte. Dei caratteri/charset lo "sa" il PrintStream, quindi devi creare il PrintStream con un charset che possibilmente non faccia "perdere" nulla (es. UTF-8 o UTF-16). Il charset lo sai tu ... quando ricrei un String dal byte[] usi lo stesso charset.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet