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

Bagaimana untuk Mengalihkan Output Konsol ke String di Java?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 01:27:021053semak imbas

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>

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!

Kenyataan:
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