- 所有已实现的接口:
Closeable,Flushable,Appendable,AutoCloseable
- 已知子类:
LogStream
PrintStream 向另一个输出流添加功能,即能够方便地打印各种数据值的表示形式。还提供了另外两个功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;相反,异常情况只是设置一个内部标志,可以通过 checkError 方法进行测试。可选地,可以创建一个 PrintStream 以便自动刷新;这意味着在写入字节数组、调用 println 方法之一或写入换行符或字节 ('\n') 后,将自动调用底层输出流的 flush 方法。
PrintStream 打印的所有字符都使用给定的编码或字符集转换为字节,如果未指定,则使用默认字符集。 PrintWriter 类应该用于需要写入字符而不是字节的情况。
此类总是用字符集的默认替换字符串替换格式错误和不可映射的字符序列。当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。
- 自从:
- 1.0
- 参见:
-
字段摘要
在类 java.io.FilterOutputStream 中声明的字段
out -
构造方法总结
构造方法构造方法描述PrintStream(File file) 使用指定的文件创建一个新的打印流,没有自动行刷新。PrintStream(File file, String csn) 使用指定的文件和字符集创建一个新的打印流,没有自动行刷新。PrintStream(File file, Charset charset) 使用指定的文件和字符集创建一个新的打印流,没有自动行刷新。PrintStream(OutputStream out) 使用指定的 OutputStream 创建一个新的打印流,没有自动行刷新。PrintStream(OutputStream out, boolean autoFlush) 使用指定的 OutputStream 和行刷新创建新的打印流。PrintStream(OutputStream out, boolean autoFlush, String encoding) 使用指定的 OutputStream、行刷新和字符编码创建新的打印流。PrintStream(OutputStream out, boolean autoFlush, Charset charset) 使用指定的 OutputStream、行刷新和字符集创建新的打印流。PrintStream(String fileName) 使用指定的文件名创建一个新的打印流,没有自动行刷新。PrintStream(String fileName, String csn) 使用指定的文件名和字符集创建一个新的打印流,没有自动行刷新。PrintStream(String fileName, Charset charset) 使用指定的文件名和字符集创建一个新的打印流,没有自动行刷新。 -
方法总结
修饰符和类型方法描述append(char c) 将指定的字符附加到此输出流。append(CharSequence csq) 将指定的字符序列附加到此输出流。append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此输出流。charset()返回此PrintStream实例中使用的字符集。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) 打印一个 double 然后终止该行。voidprintln(float x) 打印一个浮点数,然后终止该行。voidprintln(int x) 打印一个整数,然后终止该行。voidprintln(long x) 打印一长串然后终止该行。void打印一个对象,然后终止该行。void打印一个字符串,然后终止该行。protected voidsetError()将流的错误状态设置为true。voidwrite(byte[] buf) 将指定字节数组中的所有字节写入此流。voidwrite(byte[] buf, int off, int len) 从偏移量off开始的指定字节数组中将len字节写入此流。voidwrite(int b) 将指定字节写入此流。voidwriteBytes(byte[] buf) 将指定字节数组中的所有字节写入此流。在类 java.io.OutputStream 中声明的方法
nullOutputStream
-
构造方法详细信息
-
PrintStream
使用指定的 OutputStream 创建一个新的打印流,没有自动行刷新。写入流的字符使用默认字符集转换为字节,或者out是PrintStream,打印流使用的字符集。- 参数:
out- 将打印值和对象的输出流- 参见:
-
PrintStream
使用指定的 OutputStream 和行刷新创建新的打印流。写入流的字符使用默认字符集转换为字节,或者out是PrintStream,打印流使用的字符集。- 参数:
out- 将打印值和对象的输出流autoFlush- 是否在写入字节数组、调用println方法之一或写入换行符或字节 ('\n') 时刷新输出缓冲区- 参见:
-
PrintStream
public PrintStream(OutputStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException 使用指定的 OutputStream、行刷新和字符编码创建新的打印流。- 参数:
out- 将打印值和对象的输出流autoFlush- 是否在写入字节数组、调用println方法之一或写入换行符或字节 ('\n') 时刷新输出缓冲区encoding- 支持的名称 字符编码- 抛出:
UnsupportedEncodingException- 如果不支持命名编码- 自从:
- 1.4
-
PrintStream
使用指定的 OutputStream、行刷新和字符集创建新的打印流。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
out- 将打印值和对象的输出流autoFlush- 是否在写入字节数组、调用println方法之一或写入换行符或字节 ('\n') 时刷新输出缓冲区charset- 一个 charset- 自从:
- 10
-
PrintStream
使用指定的文件名创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用 默认字符集 为这个 Java 虚拟机实例编码字符。- 参数:
fileName- 用作此打印流目标的文件名。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。- 抛出:
FileNotFoundException- 如果给定的文件对象不表示现有的、可写的常规文件并且无法创建同名的新常规文件,或者在打开或创建文件时出现其他错误SecurityException- 如果存在安全管理器并且checkWrite(fileName)拒绝对文件的写访问- 自从:
- 1.5
- 参见:
-
PrintStream
public PrintStream(String fileName, String csn) throws FileNotFoundException , UnsupportedEncodingException 使用指定的文件名和字符集创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
fileName- 用作此打印流目标的文件名。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。csn- 受支持的 charset 的名称- 抛出:
FileNotFoundException- 如果给定的文件对象不表示现有的、可写的常规文件并且无法创建同名的新常规文件,或者在打开或创建文件时出现其他错误SecurityException- 如果存在安全管理器并且checkWrite(fileName)拒绝对文件的写访问UnsupportedEncodingException- 如果不支持指定的字符集- 自从:
- 1.5
-
PrintStream
使用指定的文件名和字符集创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
fileName- 用作此打印流目标的文件名。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。charset- 一个 charset- 抛出:
IOException- 如果在打开或创建文件时发生 I/O 错误SecurityException- 如果存在安全管理器并且checkWrite(fileName)拒绝对文件的写访问- 自从:
- 10
-
PrintStream
使用指定的文件创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用 默认字符集 为这个 Java 虚拟机实例编码字符。- 参数:
file- 用作此打印流目标的文件。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。- 抛出:
FileNotFoundException- 如果给定的文件对象不表示现有的、可写的常规文件并且无法创建同名的新常规文件,或者在打开或创建文件时出现其他错误SecurityException- 如果存在安全管理器并且checkWrite(file.getPath())拒绝对文件的写访问- 自从:
- 1.5
- 参见:
-
PrintStream
public PrintStream(File file, String csn) throws FileNotFoundException , UnsupportedEncodingException 使用指定的文件和字符集创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
file- 用作此打印流目标的文件。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。csn- 受支持的 charset 的名称- 抛出:
FileNotFoundException- 如果给定的文件对象不表示现有的、可写的常规文件并且无法创建同名的新常规文件,或者在打开或创建文件时出现其他错误SecurityException- 如果存在安全管理器并且checkWrite(file.getPath())拒绝对文件的写访问UnsupportedEncodingException- 如果不支持指定的字符集- 自从:
- 1.5
-
PrintStream
使用指定的文件和字符集创建一个新的打印流,没有自动行刷新。这个方便的构造函数创建了必要的中间体OutputStreamWriter,它将使用提供的字符集对字符进行编码。- 参数:
file- 用作此打印流目标的文件。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。charset- 一个 charset- 抛出:
IOException- 如果在打开或创建文件时发生 I/O 错误SecurityException- 如果存在安全管理器并且checkWrite(file.getPath())拒绝对文件的写访问- 自从:
- 10
-
-
方法详情
-
flush
public void flush()冲洗流。这是通过将任何缓冲的输出字节写入底层输出流然后刷新该流来完成的。- 指定者:
flush在接口Flushable中- 重写:
flush在类FilterOutputStream中- 参见:
-
close
public void close()关闭流。这是通过刷新流然后关闭底层输出流来完成的。- 指定者:
close在接口AutoCloseable中- 指定者:
close在接口Closeable中- 重写:
close在类FilterOutputStream中- 参见:
-
checkError
public boolean checkError()如果流未关闭则刷新流并检查其错误状态。- 返回:
true当且仅当此流遇到IOException或调用了setError方法
-
setError
protected void setError()将流的错误状态设置为true。此方法将导致
checkError()的后续调用返回true,直到调用clearError()。- 自从:
- 1.1
-
clearError
protected void clearError()清除此流的错误状态。此方法将导致
checkError()的后续调用返回false,直到另一个写入操作失败并调用setError()。- 自从:
- 1.6
-
write
public void write(int b) 将指定字节写入此流。如果字节是换行符并且启用了自动刷新,那么将在底层输出流上调用flush方法。请注意,字节按给定的方式写入;要写入将根据默认字符集翻译的字符,请使用
print(char)或println(char)方法。- 重写:
write在类FilterOutputStream中- 参数:
b- 要写入的字节- 参见:
-
write
public void write(byte[] buf, int off, int len) 从偏移量off开始的指定字节数组中将len字节写入此流。如果启用自动刷新,则将在底层输出流上调用flush方法。请注意,字节将按给定的方式写入;要写入将根据默认字符集翻译的字符,请使用
print(char)或println(char)方法。- 重写:
write在类FilterOutputStream中- 参数:
buf- 字节数组off- 开始获取字节的偏移量len- 要写入的字节数- 抛出:
IndexOutOfBoundsException- 如果off为负,len为负,或者len大于b.length - off- 参见:
-
write
将指定字节数组中的所有字节写入此流。如果启用自动刷新,则将在底层输出流上调用flush方法。请注意,字节将按给定的方式写入;要写入将根据默认字符集翻译的字符,请使用
print(char[])或println(char[])方法。- 重写:
write在类FilterOutputStream中- API 注意:
-
尽管声明抛出
IOException,但此方法实际上从未这样做过。相反,与此类覆盖的其他方法一样,它设置了一个内部标志,可以通过checkError()方法进行测试。要写入字节数组而不必为IOException写入catch块,请使用writeBytes(buf)或write(buf, 0, buf.length)。 - 实现要求:
-
此方法等效于
this.write(buf, 0, buf.length)。 - 参数:
buf- 字节数组- 抛出:
IOException- 如果发生 I/O 错误。- 自从:
- 14
- 参见:
-
writeBytes
public void writeBytes(byte[] buf) 将指定字节数组中的所有字节写入此流。如果启用自动刷新,则将调用flush方法。请注意,字节将按给定的方式写入;要写入将根据默认字符集翻译的字符,请使用
print(char[])或println(char[])方法。- 实现要求:
-
此方法等效于
this.write(buf, 0, buf.length)。 - 参数:
buf- 字节数组- 自从:
- 14
-
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) 打印字符数组。根据提供给构造函数的字符编码将字符转换为字节,如果未指定则使用默认字符集。这些字节完全按照write(int)方法的方式写入。- 参数:
s- 要打印的字符数组- 抛出:
NullPointerException- 如果s是null- 参见:
-
print
打印一个字符串。如果参数为null,则打印字符串"null"。否则,字符串的字符将根据给定构造函数的字符编码转换为字节,如果未指定则使用默认字符集。这些字节完全按照write(int)方法的方式写入。- 参数:
s- 要打印的String- 参见:
-
print
打印一个对象。String.valueOf(Object)方法生成的字符串根据默认字符集转换为字节,这些字节的写入方式与write(int)方法完全相同。- 参数:
obj- 要打印的Object- 参见:
-
println
public void println()通过写入行分隔符字符串终止当前行。行分隔符字符串由系统属性line.separator定义,不一定是单个换行符 ('\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- a 要打印的long。
-
println
public void println(float x) 打印一个浮点数,然后终止该行。此方法的行为就像它调用print(float)然后调用println()一样。- 参数:
x- 要打印的float。
-
println
public void println(double x) 打印一个 double 然后终止该行。此方法的行为就像它调用print(double)然后调用println()一样。- 参数:
x- 要打印的double。
-
println
public void println(char[] x) 打印一个字符数组,然后终止该行。此方法的行为就像调用print(char[])然后调用println()一样。- 参数:
x- 要打印的字符数组。
-
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.Category)返回的locale,指定了FORMAT类别,而不管之前对该对象的其他格式化方法的任何调用。- 参数:
format- 格式字符串,如 格式化字符串语法 中所述args- 格式字符串中格式说明符引用的参数。如果参数多于格式说明符,则忽略多余的参数。参数的数量是可变的,可以为零。参数的最大数量受限于 Java 数组的最大维度,如定义的那样Java 虚拟机规范null参数的行为取决于 转换 。- 返回:
- 这个输出流
- 抛出:
IllegalFormatException- 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、给定格式字符串的参数不足或其他非法条件。有关所有可能的格式错误的规范,请参阅格式化程序类规范的细节部分。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.print(csq.toString())根据字符序列
csq的toString规范,可能不会附加整个序列。例如,调用字符缓冲区的 thentoString方法将返回一个子序列,其内容取决于缓冲区的位置和限制。- 指定者:
append在接口Appendable中- 参数:
csq- 要追加的字符序列。如果csq是null,则四个字符"null"将附加到此输出流。- 返回:
- 这个输出流
- 自从:
- 1.5
-
append
将指定字符序列的子序列附加到此输出流。当
csq不是null时调用out.append(csq, start, end)形式的方法,其行为与调用完全相同out.print(csq.subSequence(start, end).toString())- 指定者:
append在接口Appendable中- 参数:
csq- 将追加子序列的字符序列。如果csq是null,那么字符将被追加,就好像csq包含四个字符"null"一样。start- 子序列中第一个字符的索引end- 子序列中最后一个字符之后的字符的索引- 返回:
- 这个输出流
- 抛出:
IndexOutOfBoundsException- 如果start或end为负,则start大于end,或者end大于csq.length()- 自从:
- 1.5
-
append
将指定的字符附加到此输出流。对
out.append(c)形式的方法的调用与调用的行为完全相同out.print(c)- 指定者:
append在接口Appendable中- 参数:
c- 要追加的 16 位字符- 返回:
- 这个输出流
- 自从:
- 1.5
-
charset
返回此PrintStream实例中使用的字符集。- 返回:
-
此
PrintStream实例中使用的字符集 - 自从:
- 18
-