java.lang.Object java.io.Writer java.io.PrintWriter
public class PrintWriter
向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream
中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
与 PrintStream
类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError()
是否出现错误。
字段摘要 | |
---|---|
protected Writer |
out 此 PrintWriter 的底层字符输出流。 |
从类 java.io.Writer 继承的字段 |
---|
lock |
构造方法摘要 | |
---|---|
PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter。 |
|
PrintWriter(File file, String csn) 创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。 |
|
PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。 |
|
PrintWriter(OutputStream out, boolean autoFlush) 通过现有的 OutputStream 创建新的 PrintWriter。 |
|
PrintWriter(String fileName) 创建具有指定文件名称且不带自动行刷新的新 PrintWriter。 |
|
PrintWriter(String fileName, String csn) 创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。 |
|
PrintWriter(Writer out) 创建不带自动行刷新的新 PrintWriter。 |
|
PrintWriter(Writer out, boolean autoFlush) 创建新 PrintWriter。 |
方法摘要 | |
---|---|
PrintWriter |
append(char c) 将指定字符添加到此 writer。 |
PrintWriter |
append(CharSequence csq) 将指定的字符序列添加到此 writer。 |
PrintWriter |
append(CharSequence csq, int start, int end) 将指定字符序列的子序列添加到此 writer。 |
boolean |
checkError() 如果流没有关闭,则刷新流且检查其错误状态。 |
protected void |
clearError() 清除此流的错误状态。 |
void |
close() 关闭该流并释放与之关联的所有系统资源。 |
void |
flush() 刷新该流的缓冲。 |
PrintWriter |
format(Locale l, String format, Object... args) 使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。 |
PrintWriter |
format(String format, Object... args) 使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。 |
void |
print(boolean b) 打印 boolean 值。 |
void |
print(char c) 打印字符。 |
void |
print(char[] s) 打印字符数组。 |
void |
print(double d) 打印 double 精度浮点数。 |
void |
print(float f) 打印一个浮点数。 |
void |
print(int i) 打印整数。 |
void |
print(long l) 打印 long 整数。 |
void |
print(Object obj) 打印对象。 |
void |
print(String s) 打印字符串。 |
PrintWriter |
printf(Locale l, String format, Object... args) 使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。 |
PrintWriter |
printf(String format, Object... args) 使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。 |
void |
println() 通过写入行分隔符字符串终止当前行。 |
void |
println(boolean x) 打印 boolean 值,然后终止该行。 |
void |
println(char x) 打印字符,然后终止该行。 |
void |
println(char[] x) 打印字符数组,然后终止该行。 |
void |
println(double x) 打印双精度浮点数,然后终止该行。 |
void |
println(float x) 打印浮点数,然后终止该行。 |
void |
println(int x) 打印整数,然后终止该行。 |
void |
println(long x) 打印 long 整数,然后终止该行。 |
void |
println(Object x) 打印 Object,然后终止该行。 |
void |
println(String x) 打印 String,然后终止该行。 |
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 |
字段详细信息 |
---|
protected Writer out
PrintWriter
的底层字符输出流。
构造方法详细信息 |
---|
public PrintWriter(Writer out)
out
- 字符输出流
public PrintWriter(Writer out, boolean autoFlush)
out
- 字符输出流
autoFlush
- boolean 变量;如果为 true,则
println、
printf 或
format 方法将刷新输出缓冲区
public PrintWriter(OutputStream out)
out
- 输出流
OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)
public PrintWriter(OutputStream out, boolean autoFlush)
out
- 输出流
autoFlush
- boolean 变量;如果为 true,则
println、
printf 或
format 方法将刷新输出缓冲区
OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)
public PrintWriter(String fileName) throws FileNotFoundException
OutputStreamWriter
,后者将使用此 Java 虚拟机实例的
默认 charset 进行字符编码。
fileName
- 用作此 writer 目标的文件名称。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。
FileNotFoundException
- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
SecurityException
- 如果存在安全管理器,并且
checkWrite(fileName)
拒绝对文件进行写入访问。
public PrintWriter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
OutputStreamWriter
,后者将使用提供的字符集进行字符编码。
fileName
- 用作此 writer 目标的文件名称。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。
csn
- 受支持的
字符集的名称
FileNotFoundException
- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
SecurityException
- 如果存在安全管理器,并且
checkWrite(fileName)
拒绝对文件进行写入访问。
UnsupportedEncodingException
- 如果不支持指定字符集
public PrintWriter(File file) throws FileNotFoundException
OutputStreamWriter
,后者将使用此 Java 虚拟机实例的
默认 charset 进行字符编码。
file
- 作为此 writer 的目标使用的文件。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。
FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
SecurityException
- 如果存在安全管理器,并且
checkWrite(file.getPath())
拒绝对文件进行写入访问。
public PrintWriter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
OutputStreamWriter
,后者将使用提供的字符集进行字符编码。
file
- 作为此 writer 的目标使用的文件。如果存在该文件,则将其大小截取为零;否则,创建一个新文件。将输出写入文件中,并对其进行缓冲处理。
csn
- 受支持的
字符集的名称
FileNotFoundException
- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他一些错误
SecurityException
- 如果存在安全管理器,并且
checkWrite(file.getPath())
拒绝对文件进行写入访问。
UnsupportedEncodingException
- 如果不支持指定字符集
方法详细信息 |
---|
public void flush()
checkError()
public void close()
checkError()
public boolean checkError()
true
。
protected void setError()
在调用 clearError()
之前,此方法将导致 checkError()
的后续调用返回 true。
protected void clearError()
在另一个写入操作失败并调用 setError()
之前,此方法将导致 checkError()
的后续调用返回 false。
public void write(int c)
public void write(char[] buf, int off, int len)
public void write(char[] buf)
public void write(String s, int off, int len)
public void write(String s)
public void print(boolean b)
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()
public void println()
line.separator
定义,不一定是单个换行符 (
'\n'
)。
public void println(boolean x)
print(boolean)
然后调用
println()
一样。
x
- 要打印的
boolean
值
public void println(char x)
print(char)
然后调用
println()
一样。
x
- 要打印的
char
值
public void println(int x)
print(int)
然后调用
println()
一样。
x
- 要打印的
int
值
public void println(long x)
print(long)
然后调用
println()
一样。
x
- 要打印的
long
值
public void println(float x)
print(float)
然后调用
println()
一样。
x
- 要打印的
float
值
public void println(double x)
print(double)
然后调用
println()
一样。
x
- 要打印的
double
值
public void println(char[] x)
print(char[])
然后调用
println()
一样。
x
- 要打印的
char
值的数组
public void println(String x)
print(String)
然后调用
println()
一样。
x
- 要打印的
String
值
public void println(Object x)
print(String)
然后调用
println()
一样。
x
- 要打印的
Object
public PrintWriter printf(String format, Object... args)
调用此方法的 out.printf(format, args) 形式,行为与以下调用完全相同:
out.format(format, args)
format
- 在
格式字符串的语法中描述的格式字符串。
args
- 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到
Java Virtual Machine Specification 定义的 Java 数组的最大维数的限制。针对
null 参数的行为依赖于
转换。
IllegalFormatException
- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的
详细信息部分。
NullPointerException
- 如果
format 为
null
public PrintWriter printf(Locale l, String format, Object... args)
调用此方法的 out.printf(l, format, args) 形式,行为与以下调用完全相同:
out.format(l, format, args)
l
- 格式化过程中应用的
locale。如果
l 为
null,则不应用本地化。
format
- 在
格式字符串的语法中描述的格式字符串。
args
- 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到
Java Virtual Machine Specification 定义的 Java 数组的最大维数的限制。针对
null 参数的行为依赖于
转换。
IllegalFormatException
- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的
详细信息部分。
NullPointerException
- 如果
format 为
null
public PrintWriter format(String format, Object... args)
始终使用的语言环境是由 Locale.getDefault()
返回的语言环境,不管以前在此对象上调用了其他什么样的格式化方法。
format
- 在
格式字符串的语法中描述的格式字符串。
args