Класс PrintStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.PrintStream
- Все реализованные интерфейсы:
- Closeable, Flushable, Appendable, AutoCloseable
- Прямые известные подклассы:
- LogStream
public class PrintStream extends FilterOutputStream implements Appendable, Closeable
Класс PrintStream добавляет функциональность к другому потоку вывода, а именно возможность удобного вывода представлений различных значений данных. Также предоставляются ещё две функции. В отличие от других потоков вывода, PrintStream никогда не выбрасывает IOException; вместо этого исключительные ситуации просто устанавливают внутренний флаг, который можно проверить с помощью метода checkError. При необходимости можно создать PrintStream, чтобы он автоматически сбрасывал буфер; это означает, что метод flush автоматически вызывается после записи массива байтов, вызова одного из методов println, или записи символа новой строки или байта ('\n') .
Все символы, выводимые PrintStream, преобразуются в байты с использованием кодировки символов по умолчанию платформы. Класс должен использоваться в ситуациях, требующих записи символов, а не байтов.PrintWriter
- С:
- JDK1.0
Поля
Поля, унаследованные от класса java.io.FilterOutputStream
out Конструкторы
| Конструктор и описание |
|---|
PrintStream(File file) Создает новый поток вывода, без автоматического сброса строки, с указанным файлом. |
PrintStream(File file,
String csn) Создает новый поток вывода, без автоматического сброса строки, с указанным файлом и кодировкой символов. |
PrintStream(OutputStream out) Создает новый поток вывода. |
PrintStream(OutputStream out,
boolean autoFlush) Создает новый поток вывода. |
PrintStream(OutputStream out,
boolean autoFlush,
String encoding) Создает новый поток вывода. |
PrintStream(String fileName) Создает новый поток вывода, без автоматического сброса строки, с указанным именем файла. |
PrintStream(String fileName,
String csn) Создает новый поток вывода, без автоматического сброса строки, с указанным именем файла и кодировкой символов. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
PrintStream |
append(char c) Добавляет указанный символ в этот поток вывода. |
PrintStream |
append(CharSequence csq) Добавляет указанную последовательность символов в этот поток вывода. |
PrintStream |
append(CharSequence csq,
int start,
int end) Добавляет подпоследовательность указанной последовательности символов в этот поток вывода. |
boolean |
checkError() Сбрасывает поток и проверяет состояние ошибки. |
protected void |
clearError() Очищает внутреннее состояние ошибки этого потока. |
void |
close() Закрывает поток. |
void |
flush() Сбрасывает поток. |
PrintStream |
format(Locale l,
String format,
Object... args) Записывает отформатированную строку в этот поток вывода, используя указанную строку формата и аргументы. |
PrintStream |
format(String format,
Object... args) Записывает отформатированную строку в этот поток вывода, используя указанную строку формата и аргументы. |
void |
print(boolean b) Выводит логическое значение. |
void |
print(char c) Выводит символ. |
void |
print(char[] s) Выводит массив символов. |
void |
print(double d) Выводит число с плавающей запятой двойной точности. |
void |
print(float f) Выводит число с плавающей запятой. |
void |
print(int i) Выводит целое число. |
void |
print(long l) Выводит целое число типа long. |
void |
print(Object obj) Выводит объект. |
void |
print(String s) Выводит строку. |
PrintStream |
printf(Locale l,
String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток вывода, используя указанную строку формата и аргументы. |
PrintStream |
printf(String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток вывода, используя указанную строку формата и аргументы. |
void |
println() Завершает текущую строку, записав строку разделителя строк. |
void |
println(boolean x) Выводит логическое значение и завершает строку. |
void |
println(char x) Выводит символ и завершает строку. |
void |
println(char[] x) Выводит массив символов и завершает строку. |
void |
println(double x) Выводит число с плавающей запятой double и завершает строку. |
void |
println(float x) Выводит число с плавающей запятой float и завершает строку. |
void |
println(int x) Выводит целое число int и завершает строку. |
void |
println(long x) Выводит целое число long и завершает строку. |
void |
println(Object x) Выводит объект и завершает строку. |
void |
println(String x) Выводит строку String и завершает строку. |
protected void |
setError() Устанавливает состояние ошибки потока в |
void |
write(byte[] buf,
int off,
int len) Записывает |
void |
write(int b) Записывает указанный байт в этот поток. |
Методы, унаследованные от класса java.io.FilterOutputStream
write Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
PrintStream
public PrintStream(OutputStream out)
Создаёт новый поток вывода. Этот поток не будет автоматически сбрасывать буфер.
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты - См. также:
PrintWriter(java.io.OutputStream)
PrintStream
public PrintStream(OutputStream out,
boolean autoFlush) Создаёт новый поток вывода.
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты -
autoFlush- Булево значение; если true, буфер вывода будет сбрасываться всякий раз, когда записывается массив байтов, вызываются методыprintln, или записывается символ новой строки или байт ('\n') - См. также:
PrintWriter(java.io.OutputStream, boolean)
PrintStream
public PrintStream(OutputStream out,
boolean autoFlush,
String encoding)
throws UnsupportedEncodingException Создаёт новый поток вывода.
- Параметры:
-
out- Поток вывода, в который будут выводиться значения и объекты -
autoFlush- Булево значение; если true, буфер вывода будет сбрасываться всякий раз, когда записывается массив байтов, вызываются методыprintln, или записывается символ новой строки или байт ('\n') -
encoding- Имя поддерживаемой кодировки символов - Исключения:
-
UnsupportedEncodingException- Если указанная кодировка не поддерживается - С тех пор:
- 1.4
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(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
Методы
flush
public void flush()
Сбрасывает поток. Это делается путём записи всех буферизованных байтов вывода в базовый поток вывода, а затем сброса этого потока.
- Указано в:
-
flushв интерфейсеFlushable - Переопределяет:
-
flushв классеFilterOutputStream - См. также:
OutputStream.flush()
close
public void close()
Закрывает поток. Это делается путём сброса потока и затем закрытия базового потока вывода.
- Указано в:
-
closeв интерфейсеCloseable - Указано в:
-
closeв интерфейсеAutoCloseable - Переопределяет:
-
closeв классеFilterOutputStream - См. также:
OutputStream.close()
checkError
public boolean checkError()
Сбрасывает поток и проверяет его состояние ошибки. Внутреннее состояние ошибки устанавливается в true когда базовый поток вывода выбрасывает IOException отличную от InterruptedIOException, и при вызове метода setError. Если операция с базовым потоком вывода вызывает InterruptedIOException, то PrintStream преобразует исключение обратно в прерывание, выполняя:
Thread.currentThread().interrupt();или эквивалент.
- Возвращает:
-
trueтолько в том случае, если в этом потоке произошла ошибкаIOExceptionотличная отInterruptedIOException, или был вызван методsetError
setError
protected void setError()
Устанавливает состояние ошибки потока в true.
Этот метод заставит последующие вызовы checkError() возвращать true до тех пор, пока не будет вызван clearError().
- С тех пор:
- JDK1.1
clearError
protected void clearError()
Очищает внутреннее состояние ошибки этого потока.
Этот метод заставит последующие вызовы checkError() возвращать false до тех пор, пока другая операция записи не завершится с ошибкой и не вызовет setError().
- С тех пор:
- 1.6
write
public void write(int b)
Записывает указанный байт в этот поток. Если байт — это символ новой строки, а автоматический сброс буфера включён, то будет вызван метод flush.
Обратите внимание, что байт записывается как есть; для записи символа, который будет преобразован в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char) или println(char).
- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
b- Байт, который необходимо записать - См. также:
-
print(char),println(char)
write
public void write(byte[] buf,
int off,
int len) Записывает len байтов из указанного массива байтов, начиная с смещения off, в этот поток. Если автоматический сброс буфера включён, то будет вызван метод flush.
Обратите внимание, что байты будут записаны как есть; для записи символов, которые будут преобразованны в соответствии с кодировкой символов по умолчанию платформы, используйте методы print(char) или println(char).
- Переопределяет:
-
writeв классеFilterOutputStream - Параметры:
-
buf- Массив байтов -
off- Смещение, с которого начинать взятие байтов -
len- Количество байтов для записи - См. также:
FilterOutputStream.write(int)
public void print(boolean b)
Выводит значение типа boolean. Строка, созданная , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе String.valueOf(boolean).write(int)
- Параметры:
-
b- Печатаемыйboolean
public void print(char c)
Печатает символ. Символ преобразуется в один или несколько байтов в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе .write(int)
- Параметры:
-
c- Печатаемыйchar
public void print(int i)
Печатает целое число. Строка, полученная с помощью , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе String.valueOf(int).write(int)
- Параметры:
-
i- Печатаемоеint - См. также:
Integer.toString(int)
public void print(long l)
Печатает длинное целое число. Строка, полученная с помощью , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как в методе String.valueOf(long).write(int)
- Параметры:
-
l- Печатаемоеlong - См. также:
Long.toString(long)
public void print(float f)
Печатает число с плавающей точкой. Строка, полученная с помощью , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе String.valueOf(float).write(int)
- Параметры:
-
f- Печатаемоеfloat - См. также:
Float.toString(float)
public void print(double d)
Печатает число с двойной точностью с плавающей точкой. Строка, полученная с помощью , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе String.valueOf(double).write(int)
- Параметры:
-
d- Печатаемоеdouble - См. также:
Double.toString(double)
public void print(char[] s)
Печатает массив символов. Символы преобразуются в байты в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе .write(int)
- Параметры:
-
s- Массив символов для печати - Исключения:
-
NullPointerException- Еслиsравенnull
public void print(String s)
Печатает строку. Если аргумент равен null, то печатается строка "null". В противном случае символы строки преобразуются в байты в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе .write(int)
- Параметры:
-
s- ПечатаемаяString
public void print(Object obj)
Печатает объект. Строка, полученная с помощью метода , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, а эти байты записываются точно так же, как в методе String.valueOf(Object).write(int)
- Параметры:
-
obj- ПечатаемыйObject - См. также:
Object.toString()
println
public void println()
Завершает текущую строку, написав строку разделителя строк. Строка разделителя строк определяется системной переменной line.separator, и не обязательно является одиночным символом новой строки ('\n').
println
public void println(boolean x)
Печатает булево значение и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(boolean).println()
- Параметры:
-
x- Печатаемоеboolean
println
public void println(char x)
Печатает символ и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(char).println()
- Параметры:
-
x- Печатаемыйchar.
println
public void println(int x)
Печатает целое число и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(int).println()
- Параметры:
-
x- Печатаемоеint.
println
public void println(long x)
Печатает длинное целое число и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(long).println()
- Параметры:
-
x- Печатаемоеlong.
println
public void println(float x)
Печатает число с плавающей точкой и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(float).println()
- Параметры:
-
x- Печатаемоеfloat.
println
public void println(double x)
Печатает число с двойной точностью с плавающей точкой и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(double).println()
- Параметры:
-
x- Печатаемоеdouble.
println
public void println(char[] x)
Печатает массив символов и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(char[]).println()
- Параметры:
-
x- Массив символов для печати.
println
public void println(String x)
Печатает строку и затем завершает строку. Этот метод работает так, как будто он вызывает и затем print(String).println()
- Параметры:
-
x- ПечатаемаяString.
println
public void println(Object x)
Печатает объект и затем завершает строку. Сначала вызывается String.valueOf(x) для получения строкового значения печатаемого объекта, а затем метод работает так, как будто он вызывает и затем print(String).println()
- Параметры:
-
x- ПечатаемыйObject.
printf
public PrintStream printf(String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток вывода с использованием указанной строки формата и аргументов.
Вызов этого метода в виде out.printf(format, args) ведет себя точно так же, как вызов
out.format(format, args)
- Параметры:
-
format- Строка формата, как описано в Синтаксисе строки формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Этот поток вывода
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика. -
NullPointerException- Еслиformatравенnull - С:
- 1.5
printf
public PrintStream printf(Locale l,
String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток вывода с использованием указанной строки формата и аргументов.
Вызов этого метода в виде out.printf(l, format, args) ведет себя точно так же, как вызов
out.format(l, format, args)
- Параметры:
-
l- Локаль, которая применяется во время форматирования. Еслиlравенnull, то никакая локализация не применяется. -
format- Строка формата, как описано в Синтаксисе строки формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Этот поток вывода
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробное описание спецификации класса форматировщика. -
NullPointerException- Еслиformatравенnull - С:
- 1.5
format
public PrintStream format(String format,
Object... args) Записывает отформатированную строку в этот поток вывода, используя указанную строку формата и аргументы.
Локаль, которая всегда используется, — это локаль, возвращаемая методом Locale.getDefault(), независимо от предыдущих вызовов других методов форматирования на этом объекте.
- Параметры:
-
format- Строка формата, как описано в Синтаксисе строк формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Поток вывода
- Исключение:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или присутствуют другие неверные условия. Спецификация всех возможных ошибок форматирования приведена в разделе Подробное описание спецификации класса форматировщика. -
NullPointerException- Еслиformatявляетсяnull - С:
- 1.5
format
public PrintStream format(Locale l,
String format,
Object... args) Записывает отформатированную строку в этот поток вывода с использованием заданной строки формата и аргументов.
- Параметры:
-
l- Локаль, применяемая при форматировании. Еслиlравноnull, то локализация не применяется. -
format- Строка формата, как описано в Синтаксисе строк формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Поток вывода
- Исключение:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или присутствуют другие неверные условия. Спецификация всех возможных ошибок форматирования приведена в разделе Подробное описание спецификации класса форматировщика. -
NullPointerException- Еслиformatравноnull - С:
- 1.5
append
public PrintStream append(CharSequence csq)
Добавляет указанную последовательность символов в этот поток вывода.
Вызов этого метода в формате out.append(csq) ведет себя точно так же, как вызов
out.print(csq.toString())
В зависимости от спецификации toString для последовательности символов csq, вся последовательность может быть не добавлена. Например, вызов метода toString буфера символов вернет подпоследовательность, содержимое которой зависит от позиции и предела буфера.
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
csq- Последовательность символов для добавления. Еслиcsqравноnull, то в этот поток вывода добавляются четыре символа"null". - Возвращает:
- Поток вывода
- С:
- 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())
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
csq- Последовательность символов, из которой будет добавлена подпоследовательность. Еслиcsqравноnull, то символы будут добавлены так, как если быcsqсодержало четыре символа"null". -
start- Индекс первого символа в подпоследовательности -
end- Индекс символа, следующего за последним символом в подпоследовательности - Возвращает:
- Поток вывода
- Исключение:
-
IndexOutOfBoundsException- Еслиstartилиendотрицательны,startбольшеend, илиendбольшеcsq.length() - С:
- 1.5
append
public PrintStream append(char c)
Добавляет указанный символ в этот поток вывода.
Вызов этого метода в формате out.append(c) ведет себя точно так же, как вызов
out.print(c)
- Определено в:
-
appendв интерфейсеAppendable - Параметры:
-
c- Символ (16-битное целое число) для добавления - Возвращает:
- Поток вывода
- С:
- 1.5
© 1993, 2020, 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.