Что будет выведено на консоль, а что будет записано в файл test.out ?

package question;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

public class TestOutput {
    public static void main(String[] args) throws IOException {
        PrintStream out = new PrintStream(
                   new BufferedOutputStream(new FileOutputStream("test.out")));
        PrintStream console = System.out;
        System.setOut(console);

        System.out.println("FIRST OUTPUT");

        System.setOut(out);

        System.out.println("SECOND OUTPUT");

        out.close();

        System.out.println("THIRD OUTPUT");
    }
}
Explanation
Перенаправление стандартного вывода. С FIRST OUTPUT перенаправление происходит на консоль, поэтому выведется результат в консоль, SECOND OUTPUT происходит перенаправление в файл test.out, поэтому вывод пойдёт в файл. А THIRD OUTPUT не выведется ни в консоль, ни в файл, потому что поток out закрыт на предыдущей строке.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes