- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.io.PrintStream
-
- 实现的所有接口
-
Closeable
,Flushable
,Appendable
,AutoCloseable
- 已知直接子类:
-
LogStream
public class PrintStreamextends FilterOutputStreamimplements Appendable, Closeable
PrintStream
向另一个输出流添加功能,即能够方便地打印各种数据值的表示。 还提供了另外两个功能。 与其他输出流不同,PrintStream
永远不会抛出IOException
; 相反,异常情况仅设置可通过checkError
方法测试的内部标志。 可选地,可以创建PrintStream
以便自动刷新; 这意味着flush
字节数组写入方法后自动调用,所述一个println
方法被调用时,或者一个新行字符或字节('\n'
)被写入。PrintStream
打印的所有字符都使用给定的编码或字符集转换为字节,如果未指定,则使用平台的默认字符编码。PrintWriter
类应该在需要写入字符而不是字节的情况下使用。此类始终使用charset的默认替换字符串替换格式错误且不可映射的字符序列。 当需要更多地控制编码过程时,应使用CharsetEncoder类。
- 从以下版本开始:
- 1.0
-
-
字段汇总
-
声明的属性在类 java.io.FilterOutputStream
out
-
-
构造方法摘要
构造方法 构造器 描述 PrintStream(File file)
使用指定的文件创建没有自动行刷新的新打印流。PrintStream(File file, String csn)
使用指定的文件和字符集创建一个没有自动行刷新的新打印流。PrintStream(File file, Charset charset)
使用指定的文件和字符集创建一个没有自动行刷新的新打印流。PrintStream(OutputStream out)
创建新的打印流。PrintStream(OutputStream out, boolean autoFlush)
创建新的打印流。PrintStream(OutputStream out, boolean autoFlush, String encoding)
创建新的打印流。PrintStream(OutputStream out, boolean autoFlush, Charset charset)
创建一个新的打印流,具有指定的OutputStream,自动行刷新和字符集。PrintStream(String fileName)
使用指定的文件名创建没有自动行刷新的新打印流。PrintStream(String fileName, String csn)
使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。PrintStream(String fileName, Charset charset)
使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 PrintStream
append(char c)
将指定的字符追加到此输出流。PrintStream
append(CharSequence csq)
将指定的字符序列追加到此输出流。PrintStream
append(CharSequence csq, int start, int end)
将指定字符序列的子序列追加到此输出流。boolean
checkError()
刷新流并检查其错误状态。protected void
clearError()
清除此流的内部错误状态。void
close()
关闭流。void
flush()
刷新流。PrintStream
format(String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流。PrintStream
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)
打印一个字符串。PrintStream
printf(String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。PrintStream
printf(Locale l, String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。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()
将流的错误状态设置为true
。void
write(byte[] buf, int off, int len)
将从偏移量为off
的指定字节数组中的len
字节写入此流。void
write(int b)
将指定的字节写入此流。-
声明方法的类 java.io.FilterOutputStream
write
-
声明方法的类 java.io.OutputStream
nullOutputStream
-
-
-
-
构造方法详细信息
-
PrintStream
public PrintStream(OutputStream out)
创建新的打印流。 此流不会自动刷新。- 参数
-
out
- 将打印值和对象的输出流 - 另请参见:
-
PrintWriter(java.io.OutputStream)
-
PrintStream
public PrintStream(OutputStream out, boolean autoFlush)
创建新的打印流。- 参数
-
out
- 将打印值和对象的输出流 -
autoFlush
- 布尔值; 如果为true,则只要写入字节数组,就会刷新输出缓冲区,调用其中一个println
方法,或者写入换行符或字节('\n'
) - 另请参见:
-
PrintWriter(java.io.OutputStream, boolean)
-
PrintStream
public PrintStream(OutputStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException
创建新的打印流。- 参数
-
out
- 将打印值和对象的输出流 -
autoFlush
- 布尔值; 如果为true,则只要写入字节数组,就会刷新输出缓冲区,调用其中一个println
方法,或者写入换行符或字节('\n'
) -
encoding
- 支持的 character encoding的名称 - 异常
-
UnsupportedEncodingException
- 如果不支持指定的编码 - 从以下版本开始:
- 1.4
-
PrintStream
public PrintStream(OutputStream out, boolean autoFlush, Charset charset)
创建一个新的打印流,具有指定的OutputStream,自动行刷新和字符集。 这个便利构造函数创建了必要的中间体OutputStreamWriter
,它将使用提供的字符集对字符进行编码。- 参数
-
out
- 将打印值和对象的输出流 -
autoFlush
- 布尔值; 如果为true,则每当写入字节数组时,将刷新输出缓冲区,调用其中一个println
方法,或者写入换行符或字节('\n'
) -
charset
- A charset - 从以下版本开始:
- 10
-
PrintStream
public PrintStream(String fileName) throws FileNotFoundException
使用指定的文件名创建没有自动行刷新的新打印流。 此便捷构造函数创建必要的中间体OutputStreamWriter
,它将使用default charset为此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
- 如果不支持指定的charset - 从以下版本开始:
- 1.5
-
PrintStream
public PrintStream(String fileName, Charset charset) throws IOException
使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter
,它将使用提供的字符集对字符进行编码。- 参数
-
fileName
- 要用作此打印流的目标的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -
charset
- A charset - 异常
-
IOException
- 如果在打开或创建文件时发生I / O错误 -
SecurityException
- 如果存在安全管理器且checkWrite(fileName)
拒绝对该文件的写访问权 - 从以下版本开始:
- 10
-
PrintStream
public PrintStream(File file) throws FileNotFoundException
使用指定的文件创建没有自动行刷新的新打印流。 此便捷构造函数创建必要的中间体OutputStreamWriter
,它将使用default charset为此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
public PrintStream(File file, Charset charset) throws IOException
使用指定的文件和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter
,它将使用提供的字符集对字符进行编码。- 参数
-
file
- 用作此打印流的目标的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。 -
charset
- A charset - 异常
-
IOException
- 如果在打开或创建文件时发生I / O错误 -
SecurityException
- 如果存在安全管理器且checkWrite(file.getPath())
拒绝对该文件的写访问权 - 从以下版本开始:
- 10
-
-
方法详细信息
-
flush
public void flush()
刷新流。 这是通过将任何缓冲的输出字节写入基础输出流然后刷新该流来完成的。- Specified by:
-
flush
,界面Flushable
- 重写:
-
flush
类FilterOutputStream
- 另请参见:
-
OutputStream.flush()
-
close
public void close()
关闭流。 这是通过刷新流然后关闭底层输出流来完成的。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- 重写:
-
close
类FilterOutputStream
- 另请参见:
-
OutputStream.close()
-
checkError
public boolean checkError()
刷新流并检查其错误状态。 内部错误状态被设置为true
当底层输出流抛出IOException
比其他InterruptedIOException
,并且当setError
被调用的方法。 如果基础输出流上的操作抛出InterruptedIOException
,则PrintStream
通过执行以下PrintStream
将异常转换回中断:Thread.currentThread().interrupt();
- 结果
-
true
当且仅当该流遇到IOException
以外InterruptedIOException
,或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
调用flush
方法。注意,字节写为给定; 要编写将根据平台的默认字符编码进行翻译的字符,请使用
print(char)
或println(char)
方法。- 重写:
-
write
类FilterOutputStream
- 参数
-
b
- 要写入的字节 - 另请参见:
-
print(char)
,println(char)
-
write
public void write(byte[] buf, int off, int len)
将从偏移量off
开始的指定字节数组中的len
个字节写入此流。 如果启用了自动刷新,flush
调用flush
方法。请注意,字节将写为给定; 要编写将根据平台的默认字符编码进行翻译的字符,请使用
print(char)
或println(char)
方法。- 重写:
-
write
类FilterOutputStream
- 参数
-
buf
- 字节数组 -
off
- 从中开始取字节的偏移量 -
len
- 要写入的字节数 - 另请参见:
-
FilterOutputStream.write(int)
-
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
- 要打印的字符数组。
-
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 PrintStream printf(String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。调用
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 PrintStream printf(Locale l, String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。调用
out.printf(l, format, args)
形式的此方法的行为与调用的方式完全相同out.format(l, format, args)
- 参数
-
l
- 格式化期间应用的locale 。 如果l
是null
则不应用本地化。 -
format
- Format string syntax中描述的格式字符串 -
args
- 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受4067018017777定义的Java数组的最大维数限制。null
参数上的行为取决于conversion 。 - 结果
- 此输出流
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
format
public PrintStream format(String format, Object... args)
使用指定的格式字符串和参数将格式化字符串写入此输出流。始终使用的区域设置是
Locale.getDefault(Locale.Category)
返回的区域 , 其中指定了FORMAT
类别,而不管此对象上是否有任何其他格式化方法的调用。- 参数
-
format
- Format string syntax中描述的格式字符串 -
args
- 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。null
参数上的行为取决于conversion 。 - 结果
- 此输出流
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
format
public PrintStream 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
- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 -
NullPointerException
- 如果format
是null
- 从以下版本开始:
- 1.5
-
append
public PrintStream append(CharSequence csq)
将指定的字符序列追加到此输出流。调用
out.append(csq)
形式的此方法的行为与调用的方式完全相同out.print(csq.toString())
取决于规范
toString
字符序列csq
,整个序列可以不追加。 例如,调用然后toString
一个字符缓冲区的方法将返回一个序列,其内容取决于缓冲区的位置和限制。- Specified by:
-
append
,界面Appendable
- 参数
-
csq
- 要追加的字符序列。 如果csq
是null
,则将四个字符"null"
附加到此输出流。 - 结果
- 此输出流
- 从以下版本开始:
- 1.5
-
append
public PrintStream append(CharSequence csq, int start, int end)
将指定字符序列的子序列追加到此输出流。形式的这种方法的调用
out.append(csq, start, end)
时csq
不是null
,行为以完全相同的方式调用out.print(csq.subSequence(start, end).toString())
- Specified by:
-
append
,界面Appendable
- 参数
-
csq
- 将附加子序列的字符序列。 如果csq
是null
,则将附加字符,就像csq
包含四个字符"null"
。 -
start
- 子序列中第一个字符的索引 -
end
- 子序列中最后一个字符后面的字符的索引 - 结果
- 此输出流
- 异常
-
IndexOutOfBoundsException
- 如果start
或end
为负数,start
大于end
,或end
大于csq.length()
- 从以下版本开始:
- 1.5
-
append
public PrintStream append(char c)
将指定的字符追加到此输出流。调用
out.append(c)
形式的此方法的行为与调用的方式完全相同out.print(c)
- Specified by:
-
append
在接口Appendable
- 参数
-
c
- 要追加的16位字符 - 结果
- 此输出流
- 从以下版本开始:
- 1.5
-
-