- 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()来查询是否发生了任何错误。此类始终使用charset的默认替换字符串替换格式错误且不可映射的字符序列。 当需要对编码过程进行更多控制时,应使用CharsetEncoder类。
- 从以下版本开始:
 - 1.1
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 构造器 描述 PrintWriter(File file)使用指定的文件创建一个没有自动行刷新的新PrintWriter。PrintWriter(File file, String csn)使用指定的文件和字符集创建一个没有自动行刷新的新PrintWriter。PrintWriter(File file, Charset charset)使用指定的文件和字符集创建一个没有自动行刷新的新PrintWriter。PrintWriter(OutputStream out)从现有的OutputStream创建一个没有自动行刷新的新PrintWriter。PrintWriter(OutputStream out, boolean autoFlush)从现有的OutputStream创建一个新的PrintWriter。PrintWriter(OutputStream out, boolean autoFlush, Charset charset)从现有的OutputStream创建一个新的PrintWriter。PrintWriter(Writer out)创建一个新的PrintWriter,没有自动行刷新。PrintWriter(Writer out, boolean autoFlush)创建一个新的PrintWriter。PrintWriter(String fileName)使用指定的文件名创建一个没有自动行刷新的新PrintWriter。PrintWriter(String fileName, String csn)使用指定的文件名和字符集创建一个没有自动行刷新的新PrintWriter。PrintWriter(String fileName, Charset charset)使用指定的文件名和字符集创建一个没有自动行刷新的新PrintWriter。 
-  
             
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 PrintWriterappend(char c)将指定的字符追加到此writer。PrintWriterappend(CharSequence csq)将指定的字符序列追加到此writer。PrintWriterappend(CharSequence csq, int start, int end)将指定字符序列的子序列追加到此writer。booleancheckError()如果流未关闭则刷新流并检查其错误状态。protected voidclearError()清除此流的错误状态。voidclose()关闭流并释放与其关联的所有系统资源。voidflush()刷新流。PrintWriterformat(String format, Object... args)使用指定的格式字符串和参数将格式化的字符串写入此writer。PrintWriterformat(Locale l, String format, Object... args)使用指定的格式字符串和参数将格式化的字符串写入此writer。voidprint(boolean b)打印一个布尔值。voidprint(char c)打印一个角色。voidprint(char[] s)打印一个字符数组。voidprint(double d)打印双精度浮点数。voidprint(float f)打印浮点数。voidprint(int i)打印整数。voidprint(long l)打印一个长整数。voidprint(Object obj)打印一个对象。voidprint(String s)打印一个字符串。PrintWriterprintf(String format, Object... args)使用指定的格式字符串和参数将格式化字符串写入此writer的便捷方法。PrintWriterprintf(Locale l, String format, Object... args)使用指定的格式字符串和参数将格式化字符串写入此writer的便捷方法。voidprintln()通过写行分隔符字符串来终止当前行。voidprintln(boolean x)打印一个布尔值,然后终止该行。voidprintln(char x)打印一个字符,然后终止该行。voidprintln(char[] x)打印一个字符数组,然后终止该行。voidprintln(double x)打印双精度浮点数,然后终止该行。voidprintln(float x)打印一个浮点数,然后终止该行。voidprintln(int x)打印一个整数,然后终止该行。voidprintln(long x)打印一个长整数,然后终止该行。voidprintln(Object x)打印一个对象,然后终止该行。voidprintln(String x)打印一个字符串,然后终止该行。protected voidsetError()表示发生了错误。voidwrite(char[] buf)写一个字符数组。voidwrite(char[] buf, int off, int len)写入一个字符数组的一部分。voidwrite(int c)写一个字符。voidwrite(String s)写一个字符串。voidwrite(String s, int off, int len)写一个字符串的一部分。-  
               
声明方法的类 java.io.Writer
nullWriter 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
字段详细信息
-  
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(OutputStream out, boolean autoFlush, Charset charset)
从现有的OutputStream创建一个新的PrintWriter。 这个便捷构造函数创建了必要的中间OutputStreamWriter,它将使用指定的字符集将字符转换为字节。- 参数
 -  
              
out- 输出流 -  
              
autoFlush- 布尔值; 如果为真,则println,printf,或format方法将刷新输出缓冲区 -  
              
charset- A charset - 从以下版本开始:
 - 10
 
 
-  
PrintWriter
public PrintWriter(String fileName) throws FileNotFoundException
使用指定的文件名创建一个没有自动行刷新的新PrintWriter。 此便捷构造函数创建必要的中间件OutputStreamWriter,它将使用default charset为此Java虚拟机实例编码字符。- 参数
 -  
              
fileName- 要用作此writer的目标的文件的名称。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 - 异常
 -  
              
FileNotFoundException- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(fileName)拒绝对文件的写访问权 - 从以下版本开始:
 - 1.5
 
 
-  
PrintWriter
public PrintWriter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用指定的文件名和字符集创建一个没有自动行刷新的新PrintWriter。 这个便利构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数
 -  
              
fileName- 要用作此writer的目标的文件的名称。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -  
              
csn- 支持的charset的名称 - 异常
 -  
              
FileNotFoundException- 如果给定的字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(fileName)拒绝对该文件的写访问权 -  
              
UnsupportedEncodingException- 如果不支持指定的字符集 - 从以下版本开始:
 - 1.5
 
 
-  
PrintWriter
public PrintWriter(String fileName, Charset charset) throws IOException
使用指定的文件名和字符集创建一个没有自动行刷新的新PrintWriter。 这个便利构造函数创建了必要的中间件OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数
 -  
              
fileName- 要用作此writer的目标的文件的名称。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -  
              
charset- A charset - 异常
 -  
              
IOException- 如果在打开或创建文件时发生I / O错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(fileName)拒绝对该文件的写访问权 - 从以下版本开始:
 - 10
 
 
-  
PrintWriter
public PrintWriter(File file) throws FileNotFoundException
使用指定的文件创建一个没有自动行刷新的新PrintWriter。 此便捷构造函数创建必要的中间件OutputStreamWriter,它将使用default charset为此Java虚拟机实例编码字符。- 参数
 -  
              
file- 用作此writer的目标的文件。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 - 异常
 -  
              
FileNotFoundException- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(file.getPath())拒绝对文件的写访问权 - 从以下版本开始:
 - 1.5
 
 
-  
PrintWriter
public PrintWriter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException
使用指定的文件和字符集创建一个没有自动行刷新的新PrintWriter。 这个便利构造函数创建了必要的中间件OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数
 -  
              
file- 用作此writer的目标的文件。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -  
              
csn- 支持的charset的名称 - 异常
 -  
              
FileNotFoundException- 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(file.getPath())拒绝对该文件的写访问权 -  
              
UnsupportedEncodingException- 如果不支持指定的charset - 从以下版本开始:
 - 1.5
 
 
-  
PrintWriter
public PrintWriter(File file, Charset charset) throws IOException
使用指定的文件和字符集创建一个没有自动行刷新的新PrintWriter。 这个便利构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数
 -  
              
file- 用作此writer的目标的文件。 如果该文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -  
              
charset- A charset - 异常
 -  
              
IOException- 如果在打开或创建文件时发生I / O错误 -  
              
SecurityException- 如果存在安全管理器且checkWrite(file.getPath())拒绝对文件的写访问权 - 从以下版本开始:
 - 10
 
 
 -  
 
-  
             
方法详细信息
-  
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- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的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- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 -  
              
NullPointerException- 如果format是null - 从以下版本开始:
 - 1.5
 
 
-  
format
public PrintWriter format(String format, Object... args)
使用指定的格式字符串和参数将格式化的字符串写入此writer。 如果启用了自动刷新,则调用此方法将刷新输出缓冲区。始终使用的语言环境是
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)
使用指定的格式字符串和参数将格式化的字符串写入此writer。 如果启用了自动刷新,则调用此方法将刷新输出缓冲区。- 参数
 -  
              
l- 格式化期间应用的locale 。 如果l是null则不应用本地化。 -  
              
format-如在描述的格式字符串 Format string syntax 。 -  
              
args- 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。null参数的行为取决于conversion 。 - 结果
 - 这位作家
 - 异常
 -  
              
IllegalFormatException- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 -  
              
NullPointerException- 如果format是null - 从以下版本开始:
 - 1.5
 
 
-  
append
public PrintWriter append(CharSequence csq)
将指定的字符序列追加到此writer。调用
out.append(csq)形式的此方法的行为与调用的方式完全相同out.write(csq.toString())取决于规范
toString字符序列csq,整个序列可以不追加。 例如,调用字符缓冲区的toString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- Specified by:
 -  
              
append,界面Appendable - 重写:
 -  
              
append在类Writer - 参数
 -  
              
csq- 要追加的字符序列。 如果csq是null,则四个字符"null"将附加到此writer。 - 结果
 - 这位作家
 - 从以下版本开始:
 - 1.5
 
 
-  
append
public PrintWriter append(CharSequence csq, int start, int end)
将指定字符序列的子序列追加到此writer。形式的这种方法的调用
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)
将指定的字符追加到此writer。调用
out.append(c)形式的此方法的行为与调用的方式完全相同out.write(c)- Specified by:
 -  
              
append在界面Appendable - 重写:
 -  
              
append类Writer - 参数
 -  
              
c- 要追加的16位字符 - 结果
 - 这位作家
 - 从以下版本开始:
 - 1.5
 
 
 -  
 
 -