Класс PrintStream
- Все реализованные интерфейсы:
-
Closeable,Flushable,Appendable,AutoCloseable
- Непосредственные известные подклассы:
LogStream
public class PrintStream extends FilterOutputStream implements Appendable, Closeable
PrintStream добавляет функциональность к другому потоку вывода, а именно возможность удобного вывода представлений различных значений данных. Также предоставляются еще две возможности. В отличие от других потоков вывода, PrintStream никогда не выбрасывает IOException; вместо этого исключительные ситуации просто устанавливают внутренний флаг, который можно проверить с помощью метода checkError. При необходимости можно создать PrintStream, чтобы он автоматически выполнял сброс; это означает, что метод flush базового потока вывода автоматически вызывается после записи массива байтов, вызова одного из методов println, или записи символа новой строки или байта ('\n'). Все символы, выводимые PrintStream, преобразуются в байты с использованием заданного кодирования или набора символов, или с использованием кодирования символов по умолчанию платформы, если не указано иное. Класс PrintWriter следует использовать в ситуациях, когда требуется запись символов, а не байтов.
Этот класс всегда заменяет некорректные и неотображаемые последовательности символов строкой замены по умолчанию набора символов. Класс CharsetEncoder следует использовать, когда требуется больший контроль над процессом кодирования.
- Since:
- 1.0
Краткое описание полей
Поля, объявленные в классе java.io.FilterOutputStream
out
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным файлом. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным файлом и набором символов. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным файлом и набором символов. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным OutputStream. |
PrintStream |
Создает новый поток вывода с указанным OutputStream и сбросом строки. |
PrintStream |
Создает новый поток вывода с указанным OutputStream, сбросом строки и кодировкой символов. |
PrintStream |
Создает новый поток вывода с указанным OutputStream, сбросом строки и набором символов. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным именем файла. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным именем файла и набором символов. |
PrintStream |
Создает новый поток вывода без автоматического сброса строки с указанным именем файла и набором символов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PrintStream |
append |
Добавляет указанный символ в этот поток вывода. |
PrintStream |
append |
Добавляет указанную последовательность символов в этот поток вывода. |
PrintStream |
append |
Добавляет подпоследовательность указанной последовательности символов в этот поток вывода. |
boolean |
checkError() |
Сбрасывает поток и проверяет состояние ошибки. |
protected void |
clearError() |
Очищает внутреннее состояние ошибки этого потока. |
void |
close() |
Закрывает поток. |
void |
flush() |
Сбрасывает поток. |
PrintStream |
format |
Записывает отформатированную строку в этот поток вывода, используя указанную строку формата и аргументы. |
PrintStream |
format |
Записывает отформатированную строку в этот поток вывода, используя указанную строку формата и аргументы. |
void |
print |
Выводит значение булевого типа. |
void |
print |
Выводит символ. |
void |
print |
Выводит массив символов. |
void |
print |
Выводит число с двойной точностью. |
void |
print |
Выводит число с плавающей точкой. |
void |
print |
Выводит целое число. |
void |
print |
Выводит длинное целое число. |
void |
print |
Выводит объект. |
void |
print |
Выводит строку. |
PrintStream |
printf |
Удобный метод для записи отформатированной строки в этот поток вывода, используя указанную строку формата и аргументы. |
PrintStream |
printf |
Удобный метод для записи отформатированной строки в этот поток вывода, используя указанную строку формата и аргументы. |
void |
println() |
Завершает текущую строку, записав строку разделителя строк. |
void |
println |
Выводит значение булевого типа, а затем завершает строку. |
void |
println |
Выводит символ, а затем завершает строку. |
void |
println |
Выводит массив символов, а затем завершает строку. |
void |
println |
Выводит число с двойной точностью, а затем завершает строку. |
void |
println |
Выводит число с плавающей точкой, а затем завершает строку. |
void |
println |
Выводит целое число, а затем завершает строку. |
void |
println |
Выводит длинное целое число, а затем завершает строку. |
void |
println |
Выводит объект, а затем завершает строку. |
void |
println |
Выводит строку, а затем завершает строку. |
protected void |
setError() |
Устанавливает состояние ошибки потока в true. |
void |
write |
Записывает все байты из указанного массива байтов в этот поток. |
void |
write |
Записывает len байтов из указанного массива байтов, начиная с смещения off, в этот поток. |
void |
write |
Записывает указанный байт в этот поток. |
void |
writeBytes |
Записывает все байты из указанного массива байтов в этот поток. |
Методы, объявленные в классе java.io.OutputStream
nullOutputStream
Подробное описание конструкторов
PrintStream
public PrintStream(OutputStream out)
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты - См. также:
PrintStream
public PrintStream(OutputStream out, boolean autoFlush)
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты -
autoFlush- Определяет, будет ли буфер вывода сбрасываться при записи массива байтов, вызове одного из методовprintln, или при записи символа или байта новой строки ('\n') - См. также:
PrintStream
public PrintStream(OutputStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты -
autoFlush- Определяет, будет ли буфер вывода сбрасываться при записи массива байтов, вызове одного из методовprintln, или при записи символа или байта новой строки ('\n') -
encoding- Название поддерживаемой кодировки символов - Исключения:
-
UnsupportedEncodingException- Если указанная кодировка не поддерживается - С тех пор:
- 1.4
PrintStream
public PrintStream(OutputStream out, boolean autoFlush, Charset charset)
OutputStreamWriter, который будет кодировать символы с использованием предоставленного набора символов.- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты -
autoFlush- Определяет, будет ли буфер вывода сбрасываться при записи массива байтов, вызове одного из методовprintln, или при записи символа или байта новой строки ('\n') -
charset- набор символов - С тех пор:
- 10
PrintStream
public PrintStream(String fileName) throws FileNotFoundException
OutputStreamWriter, который будет кодировать символы с использованием набора символов по умолчанию для данного экземпляра виртуальной машины Java.- Параметры:
-
fileName- Имя файла, используемого в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. - Исключения:
-
FileNotFoundException- Если данный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем создать нельзя, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(fileName)запрещает запись в файл - С тех пор:
- 1.5
PrintStream
public PrintStream(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
OutputStreamWriter, который будет кодировать символы с использованием предоставленного набора символов.- Параметры:
-
fileName- Имя файла, используемого в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
csn- Название поддерживаемого набора символов - Исключения:
-
FileNotFoundException- Если данный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем создать нельзя, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(fileName)запрещает запись в файл -
UnsupportedEncodingException- Если указанный набор символов не поддерживается - С тех пор:
- 1.5
PrintStream
public PrintStream(String fileName, Charset charset) throws IOException
OutputStreamWriter, который будет кодировать символы с использованием предоставленного набора символов.- Параметры:
-
fileName- Имя файла, используемого в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
charset- набор символов - Исключения:
-
IOException- если произошла ошибка ввода-вывода при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(fileName)запрещает запись в файл - С тех пор:
- 10
PrintStream
public PrintStream(File file) throws FileNotFoundException
OutputStreamWriter, который будет кодировать символы с использованием набора символов по умолчанию для данного экземпляра виртуальной машины Java.- Параметры:
-
file- Файл, используемый в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. - Исключения:
-
FileNotFoundException- Если данный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем создать нельзя, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(file.getPath())запрещает запись в файл - С тех пор:
- 1.5
PrintStream
public PrintStream(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
OutputStreamWriter, который будет кодировать символы с использованием предоставленного набора символов.- Параметры:
-
file- Файл, используемый в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
csn- Название поддерживаемого набора символов - Исключения:
-
FileNotFoundException- Если данный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем создать нельзя, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(file.getPath())запрещает запись в файл -
UnsupportedEncodingException- Если указанный набор символов не поддерживается - С тех пор:
- 1.5
PrintStream
public PrintStream(File file, Charset charset) throws IOException
OutputStreamWriter, который будет кодировать символы с использованием предоставленного набора символов.- Параметры:
-
file- Файл, используемый в качестве назначения этого потока печати. Если файл существует, он будет обнулён; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
charset- набор символов - Исключения:
-
IOException- если произошла ошибка ввода-вывода при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности иcheckWrite(file.getPath())запрещает запись в файл - С тех пор:
- 10
Подробное описание методов
flush
public void flush()
- Specified by:
-
flushв интерфейсеFlushable - Overrides:
-
flushв классеFilterOutputStream - See Also:
close
public void close()
- Specified by:
-
closeв интерфейсеAutoCloseable - Specified by:
-
closeв интерфейсеCloseable - Overrides:
-
closeв классеFilterOutputStream - See Also:
checkError
public boolean checkError()
true, когда базовый поток вывода генерирует исключение IOException, отличное от InterruptedIOException, и когда вызывается метод setError. Если операция над базовым потоком вывода генерирует исключение InterruptedIOException, то PrintStream преобразует исключение обратно в прерывание, выполнив:
Thread.currentThread().interrupt();
или эквивалентную операцию.- Returns:
-
trueтогда и только тогда, когда в этом потоке произошла ошибкаIOException, отличная отInterruptedIOException, или был вызван методsetError
setError
protected void setError()
true. Этот метод приведет к тому, что последующие вызовы checkError() будут возвращать true до тех пор, пока не будет вызван clearError().
- Since:
- 1.1
clearError
protected void clearError()
Этот метод приведет к тому, что последующие вызовы checkError() будут возвращать false до тех пор, пока другая операция записи не завершится неудачно и не вызовет setError().
- Since:
- 1.6
write
public void write(int b)
flush будет вызван на базовом потоке вывода. Обратите внимание, что байт записывается как есть; для записи символа, который будет преобразован в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char) или println(char).
- Overrides:
-
writeв классеFilterOutputStream - Parameters:
-
b- Байт, который нужно записать - See Also:
write
public void write(byte[] buf, int off, int len)
len байтов из указанного массива байтов, начиная с смещения off в этот поток. Если автоматическая очистка включена, то метод flush будет вызван на базовом потоке вывода. Обратите внимание, что байты записываются как есть; для записи символов, которые будут преобразованы в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char) или println(char).
- Overrides:
-
writeв классеFilterOutputStream - Parameters:
-
buf- Массив байтов -
off- Смещение, с которого начинать взятие байтов -
len- Количество байтов для записи - See Also:
write
public void write(byte[] buf) throws IOException
flush будет вызван на базовом потоке вывода. Обратите внимание, что байты записываются как есть; для записи символов, которые будут преобразовываться в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char[]) или println(char[]).
- Overrides:
-
writeв классеFilterOutputStream - API Note:
- Хотя объявлено, что метод может генерировать исключение
IOException, на самом деле он этого не делает. Вместо этого, как и другие методы, переопределенные в этом классе, он устанавливает внутренний флаг, который может быть проверен с помощью методаcheckError(). Чтобы записать массив байтов без необходимости писать блокcatchдляIOException, используйте либоwriteBytes(buf), либоwrite(buf, 0, buf.length). - Implementation Requirements:
- Этот метод эквивалентен
this.write(buf, 0, buf.length). - Parameters:
-
buf- Массив байтов - Throws:
-
IOException- Если произошла ошибка ввода-вывода. - Since:
- 14
- See Also:
writeBytes
public void writeBytes(byte[] buf)
flush будет вызван. Обратите внимание, что байты записываются как есть; для записи символов, которые будут преобразовываться в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char[]) или println(char[]).
- Implementation Requirements:
- Этот метод эквивалентен
this.write(buf, 0, buf.length). - Parameters:
-
buf- Массив байтов - Since:
- 14
public void print(boolean b)
String.valueOf(boolean), преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе write(int).- Parameters:
-
b- Булевое значение, которое нужно вывести
public void print(char c)
write(int).- Parameters:
-
c- Символ, который нужно вывести
public void print(int i)
String.valueOf(int), преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе write(int).- Parameters:
-
i- Целое число, которое нужно вывести - See Also:
public void print(long l)
String.valueOf(long), преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе write(int).- Parameters:
-
l- Длинное целое число, которое нужно вывести - See Also:
public void print(float f)
String.valueOf(float), преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе write(int).- Parameters:
-
f- Число с плавающей точкой, которое нужно вывести - See Also:
public void print(double d)
String.valueOf(double), преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе write(int).- Parameters:
-
d- Число с двойной точностью, которое нужно вывести - See Also:
Вывод
public void print(char[] s)
write(int).- Параметры:
-
s- Массив символов для вывода - Исключения:
-
NullPointerException- Еслиsnull
Вывод
public void print(String s)
null, то печатается строка "null". В противном случае символы строки преобразуются в байты в соответствии с кодировкой символов, заданной в конструкторе, или по умолчанию для платформы, если не указано иное. Эти байты записываются точно так же, как и в методе write(int).- Параметры:
-
s- Строка для вывода
Вывод
public void print(Object obj)
String.valueOf(Object), преобразуется в байты в соответствии с кодировкой символов по умолчанию для платформы, и эти байты записываются точно так же, как и в методе write(int).- Параметры:
-
obj- Объект для вывода - См. также:
println
public void println()
line.separator, и необязательно является единственным символом новой строки ('\n').println
public void println(boolean x)
print(boolean), а затем println().- Параметры:
-
x- Логическое значение для вывода
println
public void println(char x)
print(char), а затем println().- Параметры:
-
x- Символ для вывода.
println
public void println(int x)
print(int), а затем println().- Параметры:
-
x- Целое число для вывода.
println
public void println(long x)
print(long), а затем println().- Параметры:
-
x- Длинное целое число для вывода.
println
public void println(float x)
print(float), а затем println().- Параметры:
-
x- Число с плавающей точкой для вывода.
println
public void println(double x)
print(double), а затем println().- Параметры:
-
x- Число с плавающей точкой двойной точности для вывода.
println
public void println(char[] x)
print(char[]), а затем println().- Параметры:
-
x- Массив символов для вывода.
println
public void println(String x)
print(String), а затем println().- Параметры:
-
x- Строка для вывода.
println
public void println(Object x)
print(String), а затем println().- Параметры:
-
x- Объект для вывода.
printf
public PrintStream printf(String format, Object... args)
Вызов этого метода в форме out.printf(format, args) ведет себя точно так же, как вызов
out.format(format, args)
- Параметры:
-
format- Строка формата, как описано в Синтаксисе строки формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение на аргументеnullзависит от преобразования. - Возвращает:
- Этот поток вывода
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Подробности спецификации класса форматировщика. -
NullPointerException- Еслиformatnull - С момента:
- 1.5
printf
public PrintStream printf(Locale l, String format, Object... args)
Вызов этого метода в форме out.printf(l, format, args) ведет себя точно так же, как вызов
out.format(l, format, args)
- Параметры:
-
l- Локаль для применения при форматировании. Еслиlnull, то локализация не применяется. -
format- Строка формата, как описано в Синтаксисе строки формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, определенным в Спецификации виртуальной машины Java. Поведение на аргументеnullзависит от преобразования. - Возвращает:
- Этот поток вывода
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие недопустимые условия. Для спецификации всех возможных ошибок форматирования см. раздел Подробности спецификации класса форматировщика. -
NullPointerException- Еслиformatnull - С момента:
- 1.5
format
public PrintStream format(String format, Object... args)
Используемый локаль всегда — это локаль, возвращаемая методом Locale.getDefault(Locale.Category) с заданной категорией FORMAT, независимо от предыдущих вызовов других методов форматирования для этого объекта.
- Parameters:
-
format- Строка формата, как описано в Синтаксисе строк формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальной размерностью массива Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Returns:
- Этот поток вывода
- Throws:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с предоставленными аргументами, не хватает аргументов для строки формата или другие ошибки. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса formatter. -
NullPointerException- Еслиformatявляетсяnull - Since:
- 1.5
format
public PrintStream format(Locale l, String format, Object... args)
- Parameters:
-
l- Локаль, применяемая при форматировании. Еслиlравнаnull, локация не применяется. -
format- Строка формата, как описано в Синтаксисе строк формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальной размерностью массива Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Returns:
- Этот поток вывода
- Throws:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с предоставленными аргументами, не хватает аргументов для строки формата или другие ошибки. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса formatter. -
NullPointerException- Еслиformatравнаnull - Since:
- 1.5
append
public PrintStream append(CharSequence csq)
Вызов этого метода в формате out.append(csq) ведет себя точно так же, как вызов
out.print(csq.toString())
В зависимости от спецификации toString для последовательности символов csq, вся последовательность может не быть добавлена. Например, вызов метода toString буфера символов вернет подпоследовательность, содержимое которой зависит от позиции и предела буфера.
- Specified by:
-
appendв интерфейсеAppendable - Parameters:
-
csq- Последовательность символов для добавления. Еслиcsqравнаnull, то в этот поток вывода добавляются четыре символа"null". - Returns:
- Этот поток вывода
- Since:
- 1.5
append
public PrintStream append(CharSequence csq, int start, int end)
Вызов этого метода в формате out.append(csq, start, end) когда csq не равно null, ведет себя точно так же, как вызов
out.print(csq.subSequence(start, end).toString())
- Specified by:
-
appendв интерфейсеAppendable - Parameters:
-
csq- Последовательность символов, из которой будет добавлена подпоследовательность. Еслиcsqравнаnull, то символы будут добавлены так, как если быcsqсодержал четыре символа"null". -
start- Индекс первого символа в подпоследовательности -
end- Индекс символа, следующего за последним символом в подпоследовательности - Returns:
- Этот поток вывода
- Throws:
-
IndexOutOfBoundsException- Еслиstartилиendотрицательны,startбольшеend, илиendбольшеcsq.length() - Since:
- 1.5
append
public PrintStream append(char c)
Вызов этого метода в формате out.append(c) ведет себя точно так же, как вызов
out.print(c)
- Specified by:
-
appendв интерфейсеAppendable - Parameters:
-
c- 16-битный символ для добавления - Returns:
- Этот поток вывода
- Since:
- 1.5
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/PrintStream.html