Rumah > Java > javaTutorial > Bagaimana untuk Mengalihkan Output Konsol ke String di Java?

Bagaimana untuk Mengalihkan Output Konsol ke String di Java?

Patricia Arquette
Lepaskan: 2024-10-30 01:27:02
asal
1008 orang telah melayarinya

How to Redirect Console Output to a String in Java?

Ubah hala Output Konsol ke Rentetan dalam Java

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:

  1. Tangkap System.out Output:

    Secara lalai, output konsol ditulis ke System.out. Untuk menangkap output ini, gunakan kaedah System.setOut untuk menukar destinasi output.

  2. Gunakan ByteArrayOutputStream:

    Buat objek ByteArrayOutputStream, yang menyimpan output sebagai tatasusunan bait.

  3. Buat PrintStream:

    Sambungkan PrintStream ke ByteArrayOutputStream menggunakan pembinanya. Strim ini akan mengubah hala output System.out ke tatasusunan bait.

  4. Ubah Hala Output:

    Panggil System.setOut dengan PrintStream yang baru dibuat sebagai hujahnya. Ini dengan berkesan menukar destinasi System.out kepada ByteArrayOutputStream.

  5. 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>
Salin selepas log masuk

Program ini akan mencetak:

Here: Foofoofoo!
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan