Ho una funzione che accetta un oggetto di un certo tipo e un PrintStream
a cui stampare e genera una rappresentazione di tale oggetto. Come posso acquisire l'output di questa funzione in una stringa? Nello specifico, voglio usarlo come in un metodo toString
.Java: PrintStream in stringa?
90
A
risposta
156
Utilizzare un ByteArrayOutputStream
come un buffer:
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos, true, "utf-8");
yourFunction(object, ps);
String content = new String(baos.toByteArray(), StandardCharsets.UTF_8);
ps.close();
22
è possibile costruire un PrintStream con una ByteArrayOutputStream passato al costruttore che potrete poi utilizzare per afferrare il testo scritto al PrintStream.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
1
Forse a questa domanda potrebbe aiutare: Get an OutputStream into a String
sottoclasse OutputStream e avvolgerlo in PrintStream
-1
definire e inizializzare una variabile scanner denominata INSS che crea un flusso di stringa di input utilizzando il myStrLine variabile String .
Ans: Scanner inSS = new Scanner (myStrLine);
2
A unificazione di risposte precedenti, questa risposta funziona con Java 1.7 e successivi. Inoltre, ho aggiunto il codice per chiudere gli stream.
final Charset charset = StandardCharsets.UTF_8;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos, true, charset.name());
yourFunction(object, ps);
String content = new String(baos.toByteArray(), charset);
ps.close();
baos.close();
Problemi correlati
- 1. Java: Differenza tra PrintStream e PrintWriter
- 2. Converti PrintStream in PrintWriter
- 3. Perché PrintStream "out" e InputStream "in" null?
- 4. Java: Perché le classi PrintWriter o PrintStream non generano eccezioni?
- 5. Java Unicode per stringa esadecimale
- 6. apice in stringa Java
- 7. Come convertire stringa esadecimale in stringa java
- 8. conversione stringa da stringa a stringa in java
- 9. Converti byte stringa in Java
- 10. Decodifica stringa JSON in Java
- 11. numero di stringa in java
- 12. Stringa all'output binario in Java
- 13. Controllo stringa vuota in Java
- 14. Decomprime stringa GZip in Java
- 15. Stampa stringa araba in java
- 16. come inserire un nuovo carattere di linea in una stringa su PrintStream, quindi utilizzare uno scanner per rileggere il file
- 17. Devo chiudere FileOutputStream che è stato avvolto da PrintStream?
- 18. Converti stringa in Clob in Java
- 19. Converti stringa in data in java
- 20. Come convertire stringa in HashMap in Java
- 21. Converti MD5 in stringa in java
- 22. Convertire uno StreamWriter in un OutputStream in java?
- 23. Inserimento di una stringa in un altro java stringa
- 24. Come si converte una stringa in una stringa letterale Java?
- 25. Inserimento di una stringa Java in un'altra stringa senza concatenazione?
- 26. Java stringa [] copia parziale
- 27. Java split stringa all'array
- 28. Creazione stringa Java e pool Costante stringa
- 29. Stringa Java divisa da "|"
- 30. Dichiarazione stringa Java
Vuoi abbassare il nome di variabile 'S' per caso? Mi stai facendo male agli occhi. – Asaph
@Asaph - sentiti libero di evitarli :-) – ChssPly76
Non dimenticare di chiudere PrintStream per liberare tutte le risorse. – tobr