Masalah:
Pertimbangkan kaedah yang tidak mengembalikan sebarang nilai tetapi terus mencetak outputnya ke konsol. Anda ingin mendapatkan semula output ini sebagai rentetan untuk pemprosesan selanjutnya. Walau bagaimanapun, mengubah suai jenis pemulangan kaedah bukan pilihan.
Penyelesaian:
Dalam Java, output konsol boleh diubah hala ke rentetan melalui langkah berikut:
Tangkap System.out Output:
Secara lalai, output konsol ditulis ke System.out. Untuk menangkap output ini, gunakan kaedah System.setOut untuk menukar destinasi output.
Gunakan ByteArrayOutputStream:
Buat objek ByteArrayOutputStream, yang menyimpan output sebagai tatasusunan bait.
Buat PrintStream:
Sambungkan PrintStream ke ByteArrayOutputStream menggunakan pembinanya. Strim ini akan mengubah hala output System.out ke tatasusunan bait.
Ubah Hala Output:
Panggil System.setOut dengan PrintStream yang baru dibuat sebagai hujahnya. Ini dengan berkesan menukar destinasi System.out kepada ByteArrayOutputStream.
Dapatkan Keluaran sebagai Rentetan:
Selepas mencetak output yang diingini ke konsol , anda boleh mendapatkannya semula sebagai rentetan dengan membuang PrintStream, menetapkan semula System.out ke destinasi asalnya dan akhirnya menggunakan ByteArrayOutputStream.toString() untuk menukar tatasusunan bait kepada rentetan.
Contoh:
<code class="java">// Create a stream to hold the output ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); // IMPORTANT: Save the old System.out! PrintStream old = System.out; // Tell Java to use your special stream System.setOut(ps); // Print some output: goes to your special stream System.out.println("Foofoofoo!"); // Put things back System.out.flush(); System.setOut(old); // Show what happened System.out.println("Here: " + baos.toString());</code>
Program ini akan mencetak:
Here: Foofoofoo!
Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Output Konsol ke String di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!