Класс PrintWriter
- java.lang.Object
-
- java.io.Writer
-
- java.io.PrintWriter
- Все реализуемые интерфейсы:
- Closeable, Flushable, Appendable, AutoCloseable
public class PrintWriter extends Writer
Печатает отформатированные представления объектов в потоке текстового вывода. Этот класс реализует все print методы, которые есть в PrintStream. Он не содержит методов для записи байтов без кодирования, для чего следует использовать некодированные потоки байтов.
В отличие от класса PrintStream, если автоматическое сброс включен, он будет выполнен только при вызове одного из println, printf, или format методов, а не каждый раз, когда генерируется символ новой строки. Эти методы используют собственную нотацию разделителя строк платформы, а не символ новой строки.
Методы в этом классе никогда не генерируют исключения I/O, хотя некоторые из его конструкторов могут. Клиент может узнать о возникновении ошибок, вызвав checkError().
- С момента:
- JDK1.1
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected Writer |
out Основной поток символьного вывода этого |
Поля, унаследованные от класса java.io.Writer
lock Краткое описание конструкторов
| Конструктор и описание |
|---|
PrintWriter(File file) Создаёт новый PrintWriter без автоматической очистки строки, с указанным файлом. |
PrintWriter(File file,
String csn) Создаёт новый PrintWriter без автоматической очистки строки, с указанным файлом и кодировкой. |
PrintWriter(OutputStream out) Создаёт новый PrintWriter без автоматической очистки строки, из существующего OutputStream. |
PrintWriter(OutputStream out,
boolean autoFlush) Создаёт новый PrintWriter из существующего OutputStream. |
PrintWriter(String fileName) Создаёт новый PrintWriter без автоматической очистки строки, с указанным именем файла. |
PrintWriter(String fileName,
String csn) Создаёт новый PrintWriter без автоматической очистки строки, с указанным именем файла и кодировкой. |
PrintWriter(Writer out) Создаёт новый PrintWriter без автоматической очистки строки. |
PrintWriter(Writer out,
boolean autoFlush) Создаёт новый PrintWriter. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
PrintWriter |
append(char c) Добавляет указанный символ в этот поток. |
PrintWriter |
append(CharSequence csq) Добавляет указанную последовательность символов в этот поток. |
PrintWriter |
append(CharSequence csq,
int start,
int end) Добавляет подпоследовательность указанной последовательности символов в этот поток. |
boolean |
checkError() Очищает поток, если он не закрыт, и проверяет состояние ошибки. |
protected void |
clearError() Очищает состояние ошибки этого потока. |
void |
close() Закрывает поток и освобождает все системные ресурсы, связанные с ним. |
void |
flush() Очищает поток. |
PrintWriter |
format(Locale l,
String format,
Object... args) Записывает отформатированную строку в этот поток, используя указанную строку формата и аргументы. |
PrintWriter |
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) Выводит длинное целое число. |
void |
print(Object obj) Выводит объект. |
void |
print(String s) Выводит строку. |
PrintWriter |
printf(Locale l,
String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток с использованием указанной строки формата и аргументов. |
PrintWriter |
printf(String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток с использованием указанной строки формата и аргументов. |
void |
println() Заканчивает текущую строку, записав строку разделителя строк. |
void |
println(boolean x) Выводит значение булевого типа и затем заканчивает строку. |
void |
println(char x) Выводит символ и затем заканчивает строку. |
void |
println(char[] x) Выводит массив символов и затем заканчивает строку. |
void |
println(double x) Выводит число с двойной точностью и затем заканчивает строку. |
void |
println(float x) Выводит число с плавающей точкой и затем заканчивает строку. |
void |
println(int x) Выводит целое число и затем заканчивает строку. |
void |
println(long x) Выводит длинное целое число и затем заканчивает строку. |
void |
println(Object x) Выводит объект и затем заканчивает строку. |
void |
println(String x) Выводит строку и затем заканчивает строку. |
protected void |
setError() Указывает, что произошла ошибка. |
void |
write(char[] buf) Записывает массив символов. |
void |
write(char[] buf,
int off,
int len) Записывает часть массива символов. |
void |
write(int c) Записывает один символ. |
void |
write(String s) Записывает строку. |
void |
write(String s,
int off,
int len) Записывает часть строки. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
out
protected Writer out
Базовый поток символьного вывода этого PrintWriter.
- Since:
- 1.2
Конструкторы
PrintWriter
public PrintWriter(Writer out)
Создаёт новый PrintWriter без автоматической очистки строки.
- Параметры:
-
out- Поток символьного вывода
PrintWriter
public PrintWriter(Writer out,
boolean autoFlush) Создаёт новый PrintWriter.
- Параметры:
-
out- Поток символьного вывода -
autoFlush- Булево значение; если true, методыprintln,printf, илиformatбудут очищать буфер вывода
PrintWriter
public PrintWriter(OutputStream out)
Создаёт новый PrintWriter без автоматической очистки строки из существующего OutputStream. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет преобразовывать символы в байты, используя кодировку символов по умолчанию.
- Параметры:
-
out- Поток вывода - См. также:
OutputStreamWriter(java.io.OutputStream)
PrintWriter
public PrintWriter(OutputStream out,
boolean autoFlush) Создаёт новый PrintWriter из существующего OutputStream. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет преобразовывать символы в байты, используя кодировку символов по умолчанию.
- Параметры:
-
out- Поток вывода -
autoFlush- Булево значение; если true, методыprintln,printf, илиformatбудут очищать буфер вывода - См. также:
OutputStreamWriter(java.io.OutputStream)
PrintWriter
public PrintWriter(String fileName)
throws FileNotFoundException Создаёт новый PrintWriter без автоматической очистки строки с указанным именем файла. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет кодировать символы, используя кодировку по умолчанию для данной инстанции виртуальной машины Java.
- Параметры:
-
fileName- Имя файла, используемого в качестве назначения для этого объекта записи. Если файл существует, он будет обнулен до нулевого размера; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. - Исключения:
-
FileNotFoundException- Если заданная строка не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем не может быть создан, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности, иcheckWrite(fileName)отказывается предоставить доступ для записи к файлу - Since:
- 1.5
PrintWriter
public PrintWriter(String fileName,
String csn)
throws FileNotFoundException,
UnsupportedEncodingException Создаёт новый PrintWriter без автоматической очистки строки с указанным именем файла и кодировкой. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет кодировать символы, используя предоставленную кодировку.
- Параметры:
-
fileName- Имя файла, используемого в качестве назначения для этого объекта записи. Если файл существует, он будет обнулен до нулевого размера; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
csn- Название поддерживаемой кодировки - Исключения:
-
FileNotFoundException- Если заданная строка не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем не может быть создан, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности, иcheckWrite(fileName)отказывается предоставить доступ для записи к файлу -
UnsupportedEncodingException- Если указанная кодировка не поддерживается - Since:
- 1.5
PrintWriter
public PrintWriter(File file)
throws FileNotFoundException Создаёт новый PrintWriter без автоматической очистки строки с указанным файлом. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет кодировать символы, используя кодировку по умолчанию для данной инстанции виртуальной машины Java.
- Параметры:
-
file- Файл, используемый в качестве назначения для этого объекта записи. Если файл существует, он будет обнулен до нулевого размера; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. - Исключения:
-
FileNotFoundException- Если заданный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем не может быть создан, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности, иcheckWrite(file.getPath())отказывается предоставить доступ для записи к файлу - Since:
- 1.5
PrintWriter
public PrintWriter(File file,
String csn)
throws FileNotFoundException,
UnsupportedEncodingException Создаёт новый PrintWriter без автоматической очистки строки с указанным файлом и кодировкой. Этот удобный конструктор создаёт необходимый промежуточный OutputStreamWriter, который будет кодировать символы, используя предоставленную кодировку.
- Параметры:
-
file- Файл, используемый в качестве назначения для этого объекта записи. Если файл существует, он будет обнулен до нулевого размера; в противном случае будет создан новый файл. Вывод будет записан в файл и буферизован. -
csn- Название поддерживаемой кодировки - Исключения:
-
FileNotFoundException- Если заданный объект файла не обозначает существующий, доступный для записи обычный файл, и новый обычный файл с таким именем не может быть создан, или если произошла какая-либо другая ошибка при открытии или создании файла -
SecurityException- Если присутствует менеджер безопасности, иcheckWrite(file.getPath())отказывается предоставить доступ для записи к файлу -
UnsupportedEncodingException- Если указанная кодировка не поддерживается - Since:
- 1.5
Методы
flush
public void flush()
Очищает поток.
- Определено в:
-
flushв интерфейсеFlushable - Определено в:
-
flushв классеWriter - См. также:
checkError()
close
public void close()
Закрывает поток и освобождает любые системные ресурсы, связанные с ним. Закрытие ранее закрытого потока не имеет эффекта.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв классеWriter - См. также:
checkError()
checkError
public boolean checkError()
Очищает поток, если он не закрыт, и проверяет его состояние ошибки.
- Возвращает:
-
trueесли поток вывода столкнулся с ошибкой, либо в базовом потоке вывода, либо во время преобразования формата.
setError
protected void setError()
Указывает, что произошла ошибка.
Этот метод заставит последующие вызовы checkError() возвращать true до тех пор, пока не будет вызван clearError().
clearError
protected void clearError()
Очищает состояние ошибки этого потока.
Этот метод заставит последующие вызовы checkError() возвращать false до тех пор, пока другая операция записи не завершится с ошибкой и не вызовет setError().
- Since:
- 1.6
write
public void write(int c)
Записывает отдельный символ.
- Переопределяет:
-
writeв классеWriter - Параметры:
-
c- int, определяющий символ, который будет записан.
write
public void write(char[] buf,
int off,
int len) Записывает часть массива символов.
- Определено в:
-
writeв классеWriter - Параметры:
-
buf- Массив символов -
off- Смещение, с которого начать запись символов -
len- Количество символов для записи
write
public void write(char[] buf)
Записывает массив символов. Этот метод не может быть унаследован от класса Writer, потому что он должен подавлять исключения I/O.
write
public void write(String s,
int off,
int len) Записывает часть строки.
- Переопределяет:
-
writeв классеWriter - Параметры:
-
s- Строка -
off- Смещение, с которого начать запись символов -
len- Количество символов для записи
write
public void write(String s)
Записывает строку. Этот метод не может быть унаследован от класса Writer, потому что он должен подавлять исключения I/O.
public void print(boolean b)
Выводит булево значение. Строка, созданная , преобразуется в байты в соответствии с кодировкой символов по умолчанию платформы, и эти байты записываются точно так же, как и методом String.valueOf(boolean).write(int)
- Параметры:
-
b- Булево значение для вывода
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- массив значенийchar, которые нужно напечатать
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 PrintWriter printf(String format,
Object... args) Удобный метод для записи отформатированной строки в этот поток с использованием указанной строки формата и аргументов. Если включена автоматическая очистка буфера, вызовы этого метода будут очищать буфер вывода.
Вызов этого метода в форме out.printf(format, args) ведет себя точно так же, как вызов
out.format(format, args)
- Параметры:
-
format- Строка формата, как описано в Синтаксисе строки формата. -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Этот поток
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробности спецификации класса formatter. -
NullPointerException- Еслиformatравенnull - С тех пор:
- 1.5
printf
public PrintWriter 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- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробности спецификации класса formatter. -
NullPointerException- Еслиformatравенnull - С тех пор:
- 1.5
format
public PrintWriter format(String format,
Object... args) Записывает отформатированную строку в этот поток с использованием заданной строки формата и аргументов. Если включена автоматическая очистка буфера, вызовы этого метода будут очищать буфер вывода.
Используемая локаль всегда является той, что возвращает Locale.getDefault(), независимо от предыдущих вызовов других методов форматирования на этом объекте.
- Параметры:
-
format- Строка формата, как описано в Синтаксисе строки формата. -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Этот объект-писатель
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробности спецификации класса Formatter. -
NullPointerException- Еслиformatявляетсяnull - С момента:
- 1.5
format
public PrintWriter format(Locale l,
String format,
Object... args) Записывает отформатированную строку в этот объект-писатель с использованием указанной строки формата и аргументов. Если включена автоматическая очистка буфера, вызовы этого метода очистят буфер вывода.
- Параметры:
-
l- Язык, который используется при форматировании. Еслиlявляетсяnull, локализация не применяется. -
format- Строка формата, как описано в Синтаксисе строки формата. -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов переменное и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java™. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Этот объект-писатель
- Исключения:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для строки формата или другие неверные условия. Для описания всех возможных ошибок форматирования см. раздел Подробности спецификации класса formatter. -
NullPointerException- Еслиformatявляетсяnull - С момента:
- 1.5
append
public PrintWriter append(CharSequence csq)
Добавляет указанную последовательность символов к этому объекту-писателю.
Вызов этого метода в форме out.append(csq) ведет себя точно так же, как вызов
out.write(csq.toString())
В зависимости от спецификации toString для последовательности символов csq, вся последовательность может не быть добавлена. Например, вызов метода toString буфера символов вернет подпоследовательность, содержимое которой зависит от позиции и предела буфера.
- Определено в:
-
appendв интерфейсеAppendable - Переопределяет:
-
appendв классеWriter - Параметры:
-
csq- Последовательность символов для добавления. Еслиcsqявляетсяnull, то в этот объект-писатель добавляются четыре символа"null". - Возвращает:
- Этот объект-писатель
- С момента:
- 1.5
append
public PrintWriter append(CharSequence csq,
int start,
int end) Добавляет подпоследовательность указанной последовательности символов к этому объекту-писателю.
Вызов этого метода в форме out.append(csq, start, end) когда csq не является null, ведет себя точно так же, как вызов
out.write(csq.subSequence(start, end).toString())
- Определено в:
-
appendв интерфейсеAppendable - Переопределяет:
-
appendв классеWriter - Параметры:
-
csq- Последовательность символов, из которой будет добавлена подпоследовательность. Еслиcsqявляетсяnull, символы добавляются так, как если быcsqсодержали четыре символа"null". -
start- Индекс первого символа в подпоследовательности -
end- Индекс символа, следующего за последним символом в подпоследовательности - Возвращает:
- Этот объект-писатель
- Исключения:
-
IndexOutOfBoundsException- Еслиstartилиendотрицательные,startбольшеend, илиendбольшеcsq.length() - С момента:
- 1.5
append
public PrintWriter append(char c)
Добавляет указанный символ к этому объекту-писателю.
Вызов этого метода в форме out.append(c) ведет себя точно так же, как вызов
out.write(c)
- Определено в:
-
appendв интерфейсеAppendable - Переопределяет:
-
appendв классеWriter - Параметры:
-
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.