Ich habe eine Funktion, die ein Objekt eines bestimmten Typs und eine PrintStream
zu dem zu drucken, und gibt eine Darstellung des Objekts. Wie kann ich die Ausgabe dieser Funktion in einem String erfassen? Insbesondere möchte ich es wie in einer toString
Methode verwenden.Java: PrintStream zu String?
90
A
Antwort
156
ein ByteArrayOutputStream
als Puffer verwenden:
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
Sie einen Printstream mit einem ByteArrayOutputStream Konstrukt können in den Konstruktor übergeben, die Sie später den Text verwenden können, um die Print geschrieben zu greifen.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
1
Vielleicht diese Frage könnte Ihnen helfen: Get an OutputStream into a String
Subklassen-Output und wickeln Sie es in Print
-1
definieren und einen Scanner Variable initialisieren namens INSS, die einen Eingabestring-Stream unter Verwendung der String-Variable myStrLine erstellt .
Antwort: Scanner inSS = neuer Scanner (myStrLine);
2
Eine Vereinheitlichung der vorherigen Antworten, diese Antwort funktioniert mit Java 1.7 und danach. Außerdem habe ich Code hinzugefügt, um die Streams zu schließen.
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();
Verwandte Themen
- 1. Java: Wie lese ich von PrintStream?
- 2. Java: Unterschied zwischen PrintStream und PrintWriter
- 3. PrintStream erstellt keine Datei?
- 4. Java Unicode Hex-String
- 5. String zu String Array? Java
- 6. "string" ein String-Attribut zu String Java
- 7. Java String zu Klasse
- 8. JAVA String zu char
- 9. Java - String zu Nummer
- 10. Java-Zeichenfolge innerhalb String zu String
- 11. Java String zu einem String-Array hinzufügen
- 12. Java String zu Byte [] (String enthält Objektdaten)
- 13. Java: Wie String zu analysieren?
- 14. Java Split String zu Array
- 15. Java | Binär String zu Byte
- 16. String zu Clob in Java?
- 17. String zu JSONArray in Java
- 18. java encode String zu UTF
- 19. Java-String zu Datetime-Konvertierungsproblem
- 20. Warum sind PrintStream "out" und InputStream "in" null?
- 21. Java String: Ersetzen String
- 22. Java String to Date zu verschiedenen String-Format
- 23. ByteBuffer zu String in Java konvertieren
- 24. Java Heap-Fehler auf, wenn zu String
- 25. Java/Android String zu Farbe konvertieren
- 26. string zu einem dom-dokument in java
- 27. Blackberry Java String zu Datum Konvertierung
- 28. Java + sqlite REAL Feld zu String
- 29. String kann nicht zu LocalDate (Java 8)
- 30. Java String, einzelne Zeichen zu hex Bytes
Möchten Sie den Variablennamen 'S' zufällig senken? Du verletzt meine Augen. – Asaph
@Asaph - zögern Sie nicht, abzuwenden :-) – ChssPly76
Vergessen Sie nicht, den PrintStream zu schließen, um alle Ressourcen freizugeben. – tobr