Mam funkcję, która pobiera obiekt określonego typu, i PrintStream
do drukowania i wyprowadza reprezentację tego obiektu. Jak mogę przechwycić dane wyjściowe tej funkcji w łańcuchu? W szczególności chcę go używać tak, jak w metodzie toString
.Java: PrintStream to String?
90
A
Odpowiedz
156
Użyj ByteArrayOutputStream
jako bufor:
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
Można skonstruować PrintStream z ByteArrayOutputStream przekazany do konstruktora, który można później wykorzystać do chwyć tekst napisany na PrintStream.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
1
Może to pytanie może pomóc: Get an OutputStream into a String
podklasą OutputStream i zawinąć go w PrintStream
-1
Definiowanie i zainicjować zmienną Scanner nazwie INSS że wytwarza strumień ciąg wejściowy z wykorzystaniem String zmiennej myStrLine .
Odp .: Skaner inSS = nowy skaner (myStrLine);
2
Ujednolicenie poprzednich odpowiedzi, ta odpowiedź działa z językiem Java 1.7 i późniejszym. Dodałem też kod do zamykania strumieni.
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();
Powiązane problemy
- 1. Java - Przechwytywanie System.out.println lub Przechwytywanie PrintStream
- 2. Co to jest "String ..." w języku Java?
- 3. Java 9 integer to String obsada
- 4. Json String to Java Object Avro
- 5. Konwersja PrintStream do PrintWriter
- 6. Java: Dlaczego klasy PrintWriter lub PrintStream nie generują wyjątków?
- 7. Dlaczego PrintStream "out" i InputStream "w" null?
- 8. JSONResult to String
- 9. Enum to String?
- 10. Parse String to Double.NaN
- 11. sortowanie java HashMap <String, Integer>. Jak to posortować?
- 12. java Format String dziesiętny
- 13. optymalizacji kompilatora Java String
- 14. String isNullOrEmpty in Java?
- 15. superscript w Java String
- 16. Właściwości Java obiektu String
- 17. realizacja hashCode Java String
- 18. Java, Long.parse binarnego String
- 19. String to float using stringstream
- 20. Javascript Concateenate Array to String
- 21. String Octet: co to jest?
- 22. Android string-array to Array
- 23. swift 3.0 Data to String?
- 24. C# - IEnumerable to delimited string
- 25. C# DateTime to String Issue
- 26. Java String Concatenation with + operator
- 27. Java isEmpty() undefined dla String?
- 28. Decode base64 String Java 5
- 29. java string mechanizm buforowania hashcode
- 30. Dlaczego moje porównanie String to String nie działa?
Chcesz obniżyćCzy tę nazwę zmiennej "S" przypadkiem? Ranisz moje oczy. – Asaph
@Asaph - zachęcamy do ich odwrócenia :-) – ChssPly76
Nie zapomnij zamknąć PrintStream, aby zwolnić wszystkie zasoby. – tobr