Open In App

Redirecting System.out.println() Output to a File in Java

System.out.println()  is used mostly to print messages to the console. However very few of us are actually aware of its working mechanism. We can use System.out.println() to print messages to other sources too, not just restricting it to the console. However, before doing so, we must reassign the standard output by using the following method of System class as provided below:

Syntax: 



System.setOut(PrintStream p);

Note: PrintStream can be used for character output to a text file. 

Procedure:



  1. Creation of File class object
  2. Instantiating PrintStream class by passing above object of File class as argument.
  3. Calling the out() method of System class by providing PrintStream object.
  4. Lastly, print the data using the print() method.    

The sample input file is as follows:

Example:




// Java Program to Demonstrate Redirection in
// System.out.println() By Creating .txt File
// and Writing to the file Using
// System.out.println()
 
// Importing required classes
import java.io.*;
 
// Main class
// SystemFact
public class GFG {
 
    // Main driver method
    public static void main(String arr[])
        throws FileNotFoundException
    {
 
        // Creating a File object that
        // represents the disk file
        PrintStream o = new PrintStream(new File("A.txt"));
 
        // Store current System.out
        // before assigning a new value
        PrintStream console = System.out;
 
        // Assign o to output stream
        // using setOut() method
        System.setOut(o);
 
        // Display message only
        System.out.println(
            "This will be written to the text file");
 
        // Use stored value for output stream
        System.setOut(console);
 
        // Display message only
        System.out.println(
            "This will be written on the console!");
    }
}

Output:

Tip: In a very similar fashion we can use System.out.println() to write to a Socket’s OutputStream as well.


Article Tags :