Tôi có một chức năng lấy đối tượng thuộc một loại nhất định và PrintStream
để in và xuất kết quả của đối tượng đó. Làm thế nào tôi có thể nắm bắt đầu ra của hàm này trong một String? Cụ thể, tôi muốn sử dụng nó như trong phương thức toString
.Java: PrintStream to String?
90
A
Trả lời
156
Sử dụng một ByteArrayOutputStream
như một bộ đệm:
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
Bạn có thể xây dựng một PrintStream với một ByteArrayOutputStream chuyển vào constructor mà bạn sau này có thể sử dụng để lấy các văn bản bằng văn bản cho PrintStream.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
...
String output = os.toString("UTF8");
1
Có lẽ câu hỏi này có thể giúp bạn: Get an OutputStream into a String
Subclass OutputStream và bọc nó trong PrintStream
-1
Xác định và khởi tạo một biến Scanner tên inSS tạo ra một dòng chuỗi đầu vào bằng cách sử dụng biến String myStrLine .
Ans: Máy quét inSS = new Scanner (myStrLine);
2
Một sự thống nhất các câu trả lời trước, câu trả lời này hoạt động với Java 1.7 và sau đó. Ngoài ra, tôi đã thêm mã để đóng Luồng.
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();
Các vấn đề liên quan
- 1. Python Decimal to String
- 2. Haxe Int to String
- 3. Tuple to string
- 4. Enum to String?
- 5. String to Integer Smalltalk
- 6. Word Array to String
- 7. Ruby String to Date Conversion
- 8. String to Dictionary in Python
- 9. C++ std :: string to boolean
- 10. Android Bitmap to Base64 String
- 11. C# DateTime to String Issue
- 12. Cách SWIG std :: string & to C# ref string
- 13. ArrayList <String> to CharSequence []
- 14. java String constructor logic
- 15. Tôi có phải đóng FileOutputStream được gói bởi PrintStream không?
- 16. Java String literals nối
- 17. Java String vấn đề
- 18. Java: Tại sao các lớp PrintWriter hoặc PrintStream không có ngoại lệ?
- 19. Int to string: không thể chuyển đổi từ 'method group' thành 'string'
- 20. HtmlTextWriter to String - Tôi có thấy gì không?
- 21. std :: array <char, N> to std :: string
- 22. JAVA Object/String overload overload
- 23. String để char mảng Java
- 24. Java: cách khởi tạo String []?
- 25. MATLAB: Java String [] chuyển đổi
- 26. BufferedImage to BMP trong Java
- 27. Deserialize JSON to Java enum
- 28. Port to Service Name in Java?
- 29. Java Convert Object [] Array to Vector
- 30. XML Node để String trong Java
Muốn hạ thấpTên biến đó 'S' bằng bất kỳ cơ hội nào? Bạn đang làm tổn thương đôi mắt của tôi. – Asaph
@Asaph - cảm thấy tự do để ngăn chặn chúng :-) – ChssPly76
Đừng quên đóng PrintStream để giải phóng tất cả các tài nguyên. – tobr