Класс PrintStream
Класс PrintStream является потоком вывода,
который умеет печатать данные в текстовом виде.
Он автоматически преобразует числа, символы,
логические значения и объекты в строки и
отправляет их в нижележащий поток.
Именно объектами этого класса являются
стандартные потоки System.out
и System.err.
Главная особенность класса в том, что он
никогда не выбрасывает проверяемые исключения
IOException. Вместо этого ошибки
запоминаются внутри, а проверить их наличие
можно с помощью метода checkError.
Класс расширяет FilterOutputStream
и реализует Appendable
и Closeable.
Конструктор класса принимает целевой поток
вывода или имя файла, а также необязательный
флаг автоматического сброса буфера.
Если флаг autoFlush равен true,
то буфер сбрасывается при каждом вызове
println, printf или format.
Синтаксис
PrintStream(OutputStream out)
PrintStream(OutputStream out, boolean autoFlush)
PrintStream(OutputStream out, boolean autoFlush, String encoding)
PrintStream(String fileName)
PrintStream(File file)
Пример
Давайте создадим объект PrintStream,
связанный со стандартным потоком вывода,
и напечатаем в него строку:
import java.io.PrintStream;
public class Main
{
public static void main(String[] args)
{
PrintStream ps = System.out;
ps.println("abcde");
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим поток, который пишет данные в файл, и запишем в него несколько значений разных типов:
import java.io.PrintStream;
import java.io.FileNotFoundException;
public class Main
{
public static void main(String[] args) throws FileNotFoundException
{
PrintStream ps = new PrintStream("out.txt");
ps.print("value: ");
ps.print(123);
ps.println();
ps.printf("%d and %.2f", 42, 3.14);
ps.close();
}
}
Содержимое файла out.txt
после выполнения кода:
"value: 123
42 and 3.14"
Пример
Давайте проверим, возникла ли ошибка
при записи в поток, с помощью метода
checkError:
import java.io.PrintStream;
public class Main
{
public static void main(String[] args)
{
PrintStream ps = System.out;
ps.print("abcde");
ps.flush();
boolean res = ps.checkError();
System.out.println(res);
}
}
Результат выполнения кода:
"false"