- java.lang.Object
-
- java.io.Writer
-
- java.io.PrintWriter
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,Appendable
,AutoCloseable
public class PrintWriter extends Writer
将对象的格式表示打印到文本输出流。 这个类实现所有的print
中发现的方法PrintStream
。 它不包含用于编写原始字节的方法,程序应使用未编码的字节流。不像
PrintStream
类,如果启用自动刷新,将只有当一个做println
,printf
,或format
被调用的方法,而不是当一个换行符恰好是输出。 这些方法使用平台自己的行分隔符而不是换行符。这个类中的方法不会抛出I / O异常,尽管它的一些构造函数可能。 客户可以通过调用
checkError()
查询是否发生错误。- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 Constructor 描述 PrintWriter(File file)
使用指定的文件创建一个新的PrintWriter,而不需要自动的线路刷新。PrintWriter(File file, String csn)
使用指定的文件和字符集创建一个新的PrintWriter,而不需要自动进行线条刷新。PrintWriter(OutputStream out)
从现有的OutputStream创建一个新的PrintWriter,而不需要自动线路刷新。PrintWriter(OutputStream out, boolean autoFlush)
从现有的OutputStream创建一个新的PrintWriter。PrintWriter(Writer out)
创建一个新的PrintWriter,没有自动线冲洗。PrintWriter(Writer out, boolean autoFlush)
创建一个新的PrintWriter。PrintWriter(String fileName)
使用指定的文件名创建一个新的PrintWriter,而不需要自动执行行刷新。PrintWriter(String fileName, String csn)
使用指定的文件名和字符集创建一个新的PrintWriter,而不需要自动线路刷新。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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(String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入此写入程序。PrintWriter
format(Locale l, 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(String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。PrintWriter
printf(Locale l, String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。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)
写一个字符串的一部分。
-
-
-
字段详细信息
-
out
protected Writer out
这个PrintWriter
的底层字符输出流。- 从以下版本开始:
- 1.2
-
-
构造方法详细信息
-
PrintWriter
public PrintWriter(Writer out)
创建一个新的PrintWriter,没有自动线冲洗。- 参数
-
out
- 字符输出流
-
PrintWriter
public PrintWriter(Writer out, boolean autoFlush)
创建一个新的PrintWriter。- 参数
-
out
- 字符输出流 -
autoFlush
- 一个布尔值 如果为真,则println
,printf
,或format
方法将刷新输出缓冲区
-
PrintWriter
public PrintWriter(OutputStream out)
从现有的OutputStream创建一个新的PrintWriter,而不需要自动线路刷新。 这个方便的构造函数创建必要的中间OutputStreamWriter,它将使用默认字符编码将字符转换为字节。- 参数
-
out
- 输出流 - 另请参见:
-
OutputStreamWriter(java.io.OutputStream)
-
PrintWriter
public PrintWriter(OutputStream out, boolean autoFlush)
从现有的OutputStream创建一个新的PrintWriter。 这个方便的构造函数创建必要的中间OutputStreamWriter,它将使用默认字符编码将字符转换为字节。- 参数
-
out
- 输出流 -
autoFlush
- 一个布尔值 如果为真,则println
,printf
,或format
方法将刷新输出缓冲区 - 另请参见:
-
OutputStreamWriter(java.io.OutputStream)
-
PrintWriter
public PrintWriter(String fileName) throws FileNotFoundException
使用指定的文件名创建一个新的PrintWriter,而不需要自动执行行刷新。 这个方便的构造函数创建必要的中间件OutputStreamWriter
,它将使用Java虚拟机的这个实例使用default charset对字符进行编码。- 参数
-
fileName
- 要用作此作者目的地的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将被写入文件并进行缓冲。 - 异常
-
FileNotFoundException
- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -
SecurityException
- 如果存在安全管理员,并且checkWrite(fileName)
拒绝对文件的写入访问 - 从以下版本开始:
- 1.5
-
PrintWriter
public PrintWriter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用指定的文件名和字符集创建一个新的PrintWriter,而不需要自动线路刷新。 这个方便的构造函数创建必要的中间件OutputStreamWriter
,它将使用提供的字符集对字符进行编码。- 参数
-
fileName
- 要用作此作者目的地的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将被写入文件并进行缓冲。 -
csn
- 支持的名称charset - 异常
-
FileNotFoundException
- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -
SecurityException
- 如果存在安全管理员,并且checkWrite(fileName)
否认对该文件的写入访问 -
UnsupportedEncodingException
- 如果不支持命名的字符集 - 从以下版本开始:
- 1.5
-
PrintWriter
public PrintWriter(File file) throws FileNotFoundException
使用指定的文件创建一个新的PrintWriter,而不需要自动的线路刷新。 这个方便的构造函数创建必要的中间件OutputStreamWriter
,它将使用Java虚拟机的这个实例使用default charset对字符进行编码。- 参数
-
file
- 用作此作者目的地的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将被写入文件并进行缓冲。 - 异常
-
FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -
SecurityException
- 如果存在安全管理员,并且checkWrite(file.getPath())
拒绝对该文件的写入权限 - 从以下版本开始:
- 1.5
-
PrintWriter
public PrintWriter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用指定的文件和字符集创建一个新的PrintWriter,而不需要自动进行线条刷新。 这个方便的构造函数创建必要的中间件OutputStreamWriter
,它将使用提供的字符集对字符进行编码。- 参数
-
file
- 用作此作者目的地的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将被写入文件并进行缓冲。 -
csn
- 支持的名称charset - 异常
-
FileNotFoundException
- 如果给定的文件对象不表示现有的可写的常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时出现其他错误 -
SecurityException
- 如果存在安全管理员,并且checkWrite(file.getPath())
拒绝对文件的写入访问 -
UnsupportedEncodingException
- 如果不支持命名的字符集 - 从以下版本开始:
- 1.5
-
-
方法详细信息
-
flush
public void flush()
刷新流。- Specified by:
-
flush
在接口Flushable
- Specified by:
-
flush
在Writer
- 另请参见:
-
checkError()
-
close
public void close()
关闭流并释放与之相关联的任何系统资源。 关闭以前关闭的流无效。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- Specified by:
-
close
在Writer
- 另请参见:
-
checkError()
-
checkError
public boolean checkError()
如果流未关闭,请刷新流并检查其错误状态。- 结果
-
true
如果打印流在底层输出流或格式转换时遇到错误。
-
setError
protected void setError()
表示发生错误。此方法将导致
checkError()
的后续调用返回true
直到调用clearError()
。
-
clearError
protected void clearError()
清除此流的错误状态。此方法将导致
checkError()
的后续调用返回false
直到另一个写操作失败并调用setError()
。- 从以下版本开始:
- 1.6
-
write
public void write(char[] buf, int off, int len)
写一个字符数组的一部分。- Specified by:
-
write
在Writer
- 参数
-
buf
- 字符数组 -
off
- 开始编写字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
和len
参数的值导致底层Writer
的相应方法抛出一个IndexOutOfBoundsException
-
write
public void write(char[] buf)
写入一个字符数组。 该方法不能继承Writer类,因为它必须抑制I / O异常。
-
write
public void write(String s, int off, int len)
写一个字符串的一部分。- 重写:
-
write
在Writer
- 参数
-
s
- 字符串 -
off
- 开始编写字符的偏移量 -
len
- 要写入的字符数 - 异常
-
IndexOutOfBoundsException
- 如果off
和len
参数的值导致底层Writer
的相应方法抛出一个IndexOutOfBoundsException
-
write
public void write(String s)
写一个字符串 该方法不能继承Writer类,因为它必须抑制I / O异常。
-
print
public void print(boolean b)
打印布尔值。 由String.valueOf(boolean)
生成的字符串根据平台的默认字符编码转换为字节,这些字节的格式完全按照write(int)
的方式写入。- 参数
-
b
- 要打印的boolean
-
print
public void print(char c)
打印一个字符 该字符根据平台的默认字符编码转换为一个或多个字节,这些字节的格式完全按照write(int)
的方式编写。- 参数
-
c
- 要打印的char
-
print
public void print(int i)
打印一个整数。 由String.valueOf(int)
生成的字符串根据平台的默认字符编码转换为字节,这些字节的格式完全按照write(int)
的方式写入。- 参数
-
i
- 要打印的int
- 另请参见:
-
Integer.toString(int)
-
print
public void print(long l)
打印一个长整数。 由String.valueOf(long)
生成的字符串根据平台的默认字符编码转换为字节,这些字节的格式完全以write(int)
的方式写入。- 参数
-
l
- 要打印的long
- 另请参见:
-
Long.toString(long)
-
print
public void print(float f)
打印浮点数。 由String.valueOf(float)
生成的字符串根据平台的默认字符编码转换为字节,这些字节的格式完全按照write(int)
方法编写。- 参数
-
f
- 要打印的float
- 另请参见:
-
Float.toString(float)
-
print
public void print(double d)
打印双精度浮点数。 由String.valueOf(double)
生成的字符串根据平台的默认字符编码转换为字节,并且这些字节的格式完全按照write(int)
的方式写入。- 参数
-
d
- 要打印的double
- 另请参见:
-
Double.toString(double)
-
print
public void print(char[] s)
打印字符数组。 字符根据平台的默认字符编码转换为字节,这些字节的格式完全按照write(int)
的方式写入。- 参数
-
s
- 要打印的字符数组 - 异常
-
NullPointerException
- 如果s
是null
-
print
public void print(String s)
- 参数
-
s
- 要打印的String
-
print
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)
使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。 如果启用自动刷新,则调用此方法将刷新输出缓冲区。对这种形式
out.printf(format, args)
的方法的调用与调用的方式完全相同out.format(format, args)
- 参数
-
format
-如在描述的格式字符串 Format string syntax 。 -
args
- 格式字符串中格式说明符引用的参数。 如果比格式说明符更多的参数,额外的参数将被忽略。 参数的数量是可变的,可能为零。 参数的最大数量受限于The Java™ Virtual Machine Specification定义的Java数组的最大维数。 一个null
参数的行为取决于conversion 。 - 结果
- 这位作家
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
printf
public PrintWriter printf(Locale l, String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。 如果启用自动刷新,则调用此方法将刷新输出缓冲区。对这种
out.printf(l, format, args)
形式的方法的调用与调用的方式完全相同out.format(l, format, args)
- 参数
-
l
- 在格式化期间应用的locale 。 如果l
是null
则不应用本地化。 -
format
-如在描述的格式字符串 Format string syntax 。 -
args
- 格式字符串中格式说明符引用的参数。 如果比格式说明符更多的参数,额外的参数将被忽略。 参数的数量是可变的,可能为零。 参数的最大数量受限于由The Java™ Virtual Machine Specification定义的Java数组的最大维度。 一个null
参数的行为取决于conversion 。 - 结果
- 这位作家
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
format
public PrintWriter format(String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入此写入程序。 如果启用自动刷新,则调用此方法将刷新输出缓冲区。始终使用的区域设置是由
Locale.getDefault()
返回的区域 ,无论以前在此对象上调用其他格式化方法。- 参数
-
format
-如在描述的格式字符串 Format string syntax 。 -
args
- 格式字符串中格式说明符引用的参数。 如果比格式说明符更多的参数,额外的参数将被忽略。 参数的数量是可变的,可能为零。 参数的最大数量受限于The Java™ Virtual Machine Specification定义的Java数组的最大维度。 一个null
参数的行为取决于conversion 。 - 结果
- 这位作家
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅Formatter类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
format
public PrintWriter format(Locale l, String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入此写入程序。 如果启用自动刷新,则调用此方法将刷新输出缓冲区。- 参数
-
l
- 格式化期间应用的locale 。 如果l
是null
则不应用定位。 -
format
-如在描述的格式字符串 Format string syntax 。 -
args
- 格式字符串中格式说明符引用的参数。 如果比格式说明符更多的参数,额外的参数将被忽略。 参数的数量是可变的,可能为零。 参数的最大数量受限于The Java™ Virtual Machine Specification定义的Java数组的最大维度。 一个null
参数的行为取决于conversion 。 - 结果
- 这位作家
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
append
public PrintWriter append(CharSequence csq)
将指定的字符序列附加到此作者。这种
out.append(csq)
形式的方法的调用与调用的方式完全相同out.write(csq.toString())
取决于规范
toString
字符序列csq
,整个序列可以不追加。 例如,调用字符缓冲区的toString
方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- Specified by:
-
append
在接口Appendable
- 重写:
-
append
在Writer
- 参数
-
csq
- 要附加的字符序列。 如果csq
为null
,则该"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())
- Specified by:
-
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)
- Specified by:
-
append
在接口Appendable
- 重写:
-
append
在Writer
- 参数
-
c
- 要追加的16位字符 - 结果
- 这位作家
- 从以下版本开始:
- 1.5
-
-