java.lang.Object
java.io.Writer
java.io.PrintWriter
- 所有已实现的接口:
Closeable,Flushable,Appendable,AutoCloseable
将对象的格式化表示打印到文本输出流。此类实现了
PrintStream 中的所有 print 方法。它不包含写入原始字节的方法,程序应为此使用未编码的字节流。
与 PrintStream 类不同,如果启用了自动刷新,则仅当调用 println 、 printf 或 format 方法之一时才会完成,而不是每当换行符恰好输出时。这些方法使用平台自己的行分隔符概念而不是换行符。
此类中的方法从不抛出 I/O 异常,尽管它的某些构造函数可能抛出异常。客户端可以通过调用 checkError() 来询问是否发生了任何错误。
此类总是用字符集的默认替换字符串替换格式错误和不可映射的字符序列。当需要对编码过程进行更多控制时,应使用 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,没有自动行刷新。 -
方法总结
修饰符和类型方法描述append(char c) 将指定的字符附加到此编写器。append(CharSequence csq) 将指定的字符序列附加到此编写器。append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此 writer。boolean如果流未关闭则刷新流并检查其错误状态。protected void清除此流的错误状态。voidclose()关闭流并释放与其关联的任何系统资源。voidflush()冲洗流。使用指定的格式字符串和参数将格式化字符串写入此编写器。使用指定的格式字符串和参数将格式化字符串写入此编写器。voidprint(boolean b) 打印一个boolean。voidprint(char c) 打印一个字符。voidprint(char[] s) 打印字符数组。voidprint(double d) 打印双精度浮点数。voidprint(float f) 打印一个浮点数。voidprint(int i) 打印一个整数。voidprint(long l) 打印一个长整数。void打印一个对象。void打印一个字符串。使用指定的格式字符串和参数将格式化字符串写入此编写器的便捷方法。使用指定的格式字符串和参数将格式化字符串写入此编写器的便捷方法。voidprintln()通过写入行分隔符字符串终止当前行。voidprintln(boolean x) 打印一个boolean,然后终止该行。voidprintln(char x) 打印一个字符,然后终止该行。voidprintln(char[] x) 打印一个字符数组,然后终止该行。voidprintln(double x) 打印一个双精度浮点数,然后终止该行。voidprintln(float x) 打印一个浮点数,然后终止该行。voidprintln(int x) 打印一个整数,然后终止该行。voidprintln(long x) 打印一个长整数,然后终止该行。void打印一个对象,然后终止该行。void打印一个字符串,然后终止该行。protected voidsetError()将流的错误状态设置为true。voidwrite(char[] buf) 写入一个字符数组。voidwrite(char[] buf, int off, int len) 写入字符数组的一部分。voidwrite(int c) 写入单个字符。void写一个字符串。void写入字符串的一部分。在类 java.io.Writer 中声明的方法
nullWriter
-
字段详细信息
-
out
这个PrintWriter的底层字符输出流。- 自从:
- 1.2
-
-
构造方法详细信息
-
PrintWriter
创建一个新的 PrintWriter,没有自动行刷新。- 参数:
out- 字符输出流
-
PrintWriter
创建一个新的 PrintWriter。- 参数:
out- 字符输出流autoFlush- 一个boolean;如果为真,println、printf或format方法将刷新输出缓冲区
-
PrintWriter
从现有的 OutputStream 创建一个新的 PrintWriter,没有自动行刷新。这个方便的构造函数创建必要的中间 OutputStreamWriter,它将使用默认字符集将字符转换为字节,或者out是PrintStream,打印流使用的字符集。- 参数:
out- 输出流- 参见:
-
PrintWriter
从现有的 OutputStream 创建一个新的 PrintWriter。这个方便的构造函数创建必要的中间 OutputStreamWriter,它将使用默认字符集将字符转换为字节,或者out是PrintStream,打印流使用的字符集。- 参数:
out- 输出流autoFlush- 一个boolean;如果为真,println、printf或format方法将刷新输出缓冲区- 参见:
-
PrintWriter
从现有的 OutputStream 创建一个新的 PrintWriter。这个方便的构造方法创建必要的中间 OutputStreamWriter,它将使用指定的字符集将字符转换为字节。- 参数:
out- 输出流autoFlush- 一个boolean;如果为真,println、printf或format方法将刷新输出缓冲区charset- 一个 charset- 自从:
- 10
-
PrintWriter
使用指定的文件名创建一个新的 PrintWriter,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用 默认字符集 为这个 Java 虚拟机实例编码字符。- 参数:
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
使用指定的文件名和字符集创建一个新的 PrintWriter,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
fileName- 用作此编写器目标的文件的名称。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。charset- 一个 charset- 抛出:
IOException- 如果在打开或创建文件时发生 I/O 错误SecurityException- 如果存在安全管理器并且checkWrite(fileName)拒绝对文件的写访问- 自从:
- 10
-
PrintWriter
使用指定的文件创建一个新的 PrintWriter,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用 默认字符集 为这个 Java 虚拟机实例编码字符。- 参数:
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
-
PrintWriter
使用指定的文件和字符集创建一个新的 PrintWriter,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
file- 用作此编写器目标的文件。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。charset- 一个 charset- 抛出:
IOException- 如果在打开或创建文件时发生 I/O 错误SecurityException- 如果存在安全管理器并且checkWrite(file.getPath())拒绝对文件的写访问- 自从:
- 10
-
-
方法详情
-
flush
public void flush()冲洗流。 -
close
public void close()关闭流并释放与其关联的任何系统资源。关闭之前关闭的流没有任何效果。 -
checkError
public boolean checkError()如果流未关闭则刷新流并检查其错误状态。- 返回:
true当且仅当此流遇到IOException或调用了setError方法
-
setError
protected void setError()将流的错误状态设置为true。此方法将导致
checkError()的后续调用返回true,直到调用clearError()。 -
clearError
protected void clearError()清除此流的错误状态。此方法将导致
checkError()的后续调用返回false,直到另一个写入操作失败并调用setError()。- 自从:
- 1.6
-
write
public void write(int c) 写入单个字符。 -
write
public void write(char[] buf, int off, int len) 写入字符数组的一部分。- 指定者:
write在类Writer中- 参数:
buf- 字符数组off- 开始写入字符的偏移量len- 要写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off和len参数的值导致底层Writer的相应方法抛出IndexOutOfBoundsException
-
write
public void write(char[] buf) 写入一个字符数组。此方法不能从 Writer 类继承,因为它必须抑制 I/O 异常。 -
write
写入字符串的一部分。- 重写:
write在类Writer中- 参数:
s- 一个字符串off- 开始写入字符的偏移量len- 要写入的字符数- 抛出:
IndexOutOfBoundsException- 如果off和len参数的值导致底层Writer的相应方法抛出IndexOutOfBoundsException
-
write
写一个字符串。此方法不能从 Writer 类继承,因为它必须抑制 I/O 异常。 -
print
public void print(boolean b) 打印一个boolean。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- 参见:
-
print
public void print(long l) 打印一个长整数。String.valueOf(long)生成的字符串根据默认字符集转换为字节,这些字节完全按照write(int)方法的方式写入。- 参数:
l- 要打印的long- 参见:
-
print
public void print(float f) 打印一个浮点数。String.valueOf(float)生成的字符串根据默认字符集转换为字节,这些字节的写入方式与write(int)方法完全相同。- 参数:
f- 要打印的float- 参见:
-
print
public void print(double d) 打印双精度浮点数。String.valueOf(double)生成的字符串根据默认字符集转换为字节,这些字节完全按照write(int)方法的方式写入。- 参数:
d- 要打印的double- 参见:
-
print
public void print(char[] s) 打印字符数组。字符按照默认的charset转换成字节,这些字节的写法和write(int)方法完全一样。- 参数:
s- 要打印的字符数组- 抛出:
NullPointerException- 如果s是null- 参见:
-
print
- 参数:
s- 要打印的String- 参见:
-
print
打印一个对象。String.valueOf(Object)方法生成的字符串根据默认字符集转换为字节,这些字节的写入方式与write(int)方法完全相同。- 参数:
obj- 要打印的Object- 参见:
-
println
public void println()通过写入行分隔符字符串终止当前行。行分隔符是System.lineSeparator(),不一定是单个换行符 ('\n')。 -
println
public void println(boolean x) 打印一个boolean,然后终止该行。此方法的行为就像它调用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
打印一个字符串,然后终止该行。此方法的行为就像它调用print(String)然后调用println()一样。- 参数:
x- 要打印的String值
-
println
打印一个对象,然后终止该行。此方法首先调用 String.valueOf(x) 以获取打印对象的字符串值,然后其行为就像调用print(String)然后调用println()一样。- 参数:
x- 要打印的Object。
-
printf
使用指定的格式字符串和参数将格式化字符串写入此编写器的便捷方法。如果启用自动刷新,调用此方法将刷新输出缓冲区。对
out.printf(format, args)形式的方法的调用与调用的行为完全相同out.format(format, args)- 参数:
format- 格式字符串,如 格式化字符串语法 中所述。args- 格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可以为零。参数的最大数量受限于 Java 数组的最大维度,如定义的那样Java 虚拟机规范null参数的行为取决于 转换 。- 返回:
- 这位作家
- 抛出:
IllegalFormatException- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。有关所有可能的格式错误的规范,请参阅格式化程序类规范的细节部分。NullPointerException- 如果format是null- 自从:
- 1.5
-
printf
使用指定的格式字符串和参数将格式化字符串写入此编写器的便捷方法。如果启用自动刷新,调用此方法将刷新输出缓冲区。对
out.printf(l, format, args)形式的方法的调用与调用的行为完全相同out.format(l, format, args)- 参数:
l- 在格式化期间应用的 locale。如果l是null则不应用本地化。format- 格式字符串,如 格式化字符串语法 中所述。args- 格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可以为零。参数的最大数量受限于 Java 数组的最大维度,如定义的那样Java 虚拟机规范null参数的行为取决于 转换 。- 返回:
- 这位作家
- 抛出:
IllegalFormatException- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。有关所有可能的格式错误的规范,请参阅格式化程序类规范的细节部分。NullPointerException- 如果format是null- 自从:
- 1.5
-
format
使用指定的格式字符串和参数将格式化字符串写入此编写器。如果启用自动刷新,调用此方法将刷新输出缓冲区。始终使用的locale是
Locale.getDefault()返回的locale,无论之前是否对该对象调用过其他格式化方法。- 参数:
format- 格式字符串,如 格式化字符串语法 中所述。args- 格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可以为零。参数的最大数量受限于 Java 数组的最大维度,如定义的那样Java 虚拟机规范null参数的行为取决于 转换 。- 返回:
- 这位作家
- 抛出:
IllegalFormatException- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。有关所有可能的格式错误的规范,请参阅 Formatter 类规范的 细节 部分。NullPointerException- 如果format是null- 自从:
- 1.5
-
format
使用指定的格式字符串和参数将格式化字符串写入此编写器。如果启用自动刷新,调用此方法将刷新输出缓冲区。- 参数:
l- 在格式化期间应用的 locale。如果l是null则不应用本地化。format- 格式字符串,如 格式化字符串语法 中所述。args- 格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可以为零。参数的最大数量受限于 Java 数组的最大维度,如定义的那样Java 虚拟机规范null参数的行为取决于 转换 。- 返回:
- 这位作家
- 抛出:
IllegalFormatException- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。有关所有可能的格式错误的规范,请参阅格式化程序类规范的细节部分。NullPointerException- 如果format是null- 自从:
- 1.5
-
append
将指定的字符序列附加到此编写器。对
out.append(csq)形式的方法的调用与调用的行为完全相同out.write(csq.toString())根据字符序列
csq的toString规范,可能不会附加整个序列。例如,调用字符缓冲区的toString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- 指定者:
append在接口Appendable中- 重写:
append在类Writer中- 参数:
csq- 要追加的字符序列。如果csq是null,那么四个字符"null"会附加到这个 writer。- 返回:
- 这位作家
- 自从:
- 1.5
-
append
将指定字符序列的子序列附加到此 writer。当
csq不是null时调用out.append(csq, start, end)形式的方法,其行为与调用完全相同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
将指定的字符附加到此编写器。对
out.append(c)形式的方法的调用与调用的行为完全相同out.write(c)- 指定者:
append在接口Appendable中- 重写:
append在类Writer中- 参数:
c- 要追加的 16 位字符- 返回:
- 这位作家
- 自从:
- 1.5
-