Saya memiliki fungsi yang mengambil objek dari tipe tertentu, dan PrintStream
untuk mencetak, dan mengeluarkan representasi dari objek itu. Bagaimana cara menangkap output fungsi ini dalam String? Secara khusus, saya ingin menggunakannya sebagai toString
metode.
java
string
printstream
Nick Heiner
sumber
sumber
PrintStream ps = new PrintStream(baos,true,"utf-8");
untuk menghindari kekacauan charsetnew String(baos.toByteArray(), java.nio.charset.StandardCharsets.UTF_8);
tersedia sejak 1.7 , itu tidak membuangByteArrayOutputStream.close()
" tidak berpengaruh ", karena tidak ada sumber daya yang dapat dikosongkan selain larik dukungan yang akan ditangani oleh pengumpul sampah.ByteArrayOutputStream
memilikitoString(String charsetName)
, tetapi hanya menerima argumen String. Perhatikan juga bahwa ByteArrayOutputStream disinkronkan , yang mungkin tidak diinginkanAnda dapat membuat PrintStream dengan ByteArrayOutputStream yang diteruskan ke konstruktor yang nantinya dapat Anda gunakan untuk mengambil teks yang ditulis ke PrintStream.
sumber
Sebuah penyatuan jawaban sebelumnya, jawaban ini bekerja dengan Java 1.7 dan setelahnya. Juga, saya menambahkan kode untuk menutup Streams.
sumber
Mungkin pertanyaan ini dapat membantu Anda: Dapatkan OutputStream ke dalam String
Subclass OutputStream dan bungkus dalam PrintStream
sumber
Tentukan dan inisialisasi variabel Scanner bernama inSS yang membuat aliran string input menggunakan variabel String myStrLine.
Jawab: Scanner inSS = New Scanner (myStrLine);
sumber