public class PrintStream extends FilterOutputStream implements Appendable, Closeable
PrintStream
adds functionality to another output stream, namely the ability to
print representations of various data values conveniently. Two other features are provided as
well. Unlike other output streams, a PrintStream
never throws an
IOException
; instead, exceptional situations merely set an internal flag that can be
tested via the checkError
method. Optionally, a PrintStream
can be
created so as to flush automatically; this means that the flush
method is
automatically invoked after a byte array is written, one of the println
methods is
invoked, or a newline character or byte ('\n'
) is written.
All characters printed by a PrintStream
are converted into bytes using the
platform's default character encoding.
Constructor and Description |
---|
PrintStream(OutputStream out)
Creates a new print stream.
|
PrintStream(OutputStream out,
boolean autoFlush)
Creates a new print stream.
|
PrintStream(OutputStream out,
boolean autoFlush,
String encoding)
Creates a new print stream.
|
Modifier and Type | Method and Description |
---|---|
PrintStream |
append(char c)
Appends the specified character to this output stream.
|
PrintStream |
append(CharSequence csq)
Appends the specified character sequence to this output stream.
|
PrintStream |
append(CharSequence csq,
int start,
int end)
Appends a subsequence of the specified character sequence to this output stream.
|
boolean |
checkError()
Flushes the stream and checks its error state.
|
protected void |
clearError()
Clears the internal error state of this stream.
|
void |
close()
Closes the stream.
|
void |
flush()
Flushes the stream.
|
void |
print(boolean b)
Prints a boolean value.
|
void |
print(char c)
Prints a character.
|
void |
print(char[] s)
Prints an array of characters.
|
void |
print(double d)
Prints a double-precision floating-point number.
|
void |
print(float f)
Prints a floating-point number.
|
void |
print(int i)
Prints an integer.
|
void |
print(long l)
Prints a long integer.
|
void |
print(Object obj)
Prints an object.
|
void |
print(String s)
Prints a string.
|
void |
println()
Terminates the current line by writing the line separator string.
|
void |
println(boolean x)
Prints a boolean and then terminate the line.
|
void |
println(char x)
Prints a character and then terminate the line.
|
void |
println(char[] x)
Prints an array of characters and then terminate the line.
|
void |
println(double x)
Prints a double and then terminate the line.
|
void |
println(float x)
Prints a float and then terminate the line.
|
void |
println(int x)
Prints an integer and then terminate the line.
|
void |
println(long x)
Prints a long and then terminate the line.
|
void |
println(Object x)
Prints an Object and then terminate the line.
|
void |
println(String x)
Prints a String and then terminate the line.
|
protected void |
setError()
Sets the error state of the stream to
true . |
void |
write(byte[] buf,
int off,
int len)
Writes
len bytes from the specified byte array starting at offset off
to this stream. |
void |
write(int b)
Writes the specified byte to this stream.
|
write
public PrintStream(OutputStream out)
out
- The output stream to which values and objects will be printedpublic PrintStream(OutputStream out, boolean autoFlush)
out
- The output stream to which values and objects will be printedautoFlush
- A boolean; if true, the output buffer will be flushed whenever a byte array is written,
one of the println
methods is invoked, or a newline character or byte
('\n'
) is writtenpublic PrintStream(OutputStream out, boolean autoFlush, String encoding) throws UnsupportedEncodingException
out
- The output stream to which values and objects will be printedautoFlush
- A boolean; if true, the output buffer will be flushed whenever a byte array is written,
one of the println
methods is invoked, or a newline character or byte
('\n'
) is writtenencoding
- The name of a supported character encodingUnsupportedEncodingException
- If the named encoding is not supportedpublic PrintStream append(char c)
An invocation of this method of the form out.append(c) behaves in exactly the same way as the invocation
out.print(c)
append
in interface Appendable
c
- The 16-bit character to appendpublic PrintStream append(@Nullable CharSequence csq)
An invocation of this method of the form out.append(csq) behaves in exactly the same way as the invocation
out.print(csq.toString())
Depending on the specification of toString for the character sequence csq, the entire sequence may not be appended. For instance, invoking then toString method of a character buffer will return a subsequence whose content depends upon the buffer's position and limit.
append
in interface Appendable
csq
- The character sequence to append. If csq is null, then the four
characters "null" are appended to this output stream.public PrintStream append(@Nullable CharSequence csq, int start, int end)
An invocation of this method of the form out.append(csq, start, end) when csq is not null, behaves in exactly the same way as the invocation
out.print(csq.subSequence(start, end).toString())
append
in interface Appendable
csq
- The character sequence from which a subsequence will be appended. If csq is
null, then characters will be appended as if csq contained the four
characters "null".start
- The index of the first character in the subsequenceend
- The index of the character following the last character in the subsequenceIndexOutOfBoundsException
- If start or end are negative, start is greater than
end, or end is greater than csq.length()public boolean checkError()
true
when the underlying output stream throws an IOException
other than
InterruptedIOException
, and when the setError
method is invoked. If an
operation on the underlying output stream throws an InterruptedIOException
, then the
PrintStream
converts the exception back into an interrupt by doing:
Thread.currentThread().interrupt();or the equivalent.
true
if and only if this stream has encountered an IOException
other than InterruptedIOException
, or the setError
method has
been invokedprotected void clearError()
This method will cause subsequent invocations of checkError()
to return false
until another write operation fails and invokes setError()
.
public void close()
close
in interface Closeable
close
in interface AutoCloseable
close
in class FilterOutputStream
OutputStream.close()
public void flush()
flush
in interface Flushable
flush
in class FilterOutputStream
OutputStream.flush()
public void print(boolean b)
String.valueOf(boolean)
is translated into bytes according to the platform's
default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.b
- The boolean
to be printedpublic void print(char c)
write(int)
method.c
- The char
to be printedpublic void print(char[] s)
write(int)
method.s
- The array of chars to be printedNullPointerException
- If s
is null
public void print(double d)
String.valueOf(double)
is translated into bytes according to the
platform's default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.d
- The double
to be printedDouble.toString(double)
public void print(float f)
String.valueOf(float)
is translated into bytes according to the platform's
default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.f
- The float
to be printedFloat.toString(float)
public void print(int i)
String.valueOf(int)
is translated into bytes according to the platform's
default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.i
- The int
to be printedInteger.toString(int)
public void print(long l)
String.valueOf(long)
is translated into bytes according to the platform's
default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.l
- The long
to be printedLong.toString(long)
public void print(@Nullable Object obj)
String.valueOf(Object)
method is translated into bytes according to the
platform's default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.obj
- The Object
to be printedObject.toString()
public void print(@Nullable String s)
null
then the string "null"
is
printed. Otherwise, the string's characters are converted into bytes according to the platform's
default character encoding, and these bytes are written in exactly the manner of the
write(int)
method.s
- The String
to be printedpublic void println()
line.separator
, and is not necessarily a single
newline character ('\n'
).public void println(boolean x)
print(boolean)
and then println()
.x
- The boolean
to be printedpublic void println(char x)
print(char)
and then println()
.x
- The char
to be printed.public void println(char[] x)
print(char[])
and then println()
.x
- an array of chars to print.public void println(double x)
print(double)
and then println()
.x
- The double
to be printed.public void println(float x)
print(float)
and then println()
.x
- The float
to be printed.public void println(int x)
print(int)
and then println()
.x
- The int
to be printed.public void println(long x)
print(long)
and then println()
.x
- a The long
to be printed.public void println(@Nullable Object x)
print(String)
and then println()
.x
- The Object
to be printed.public void println(@Nullable String x)
print(String)
and then println()
.x
- The String
to be printed.protected void setError()
true
.
This method will cause subsequent invocations of checkError()
to return true
until clearError()
is invoked.
public void write(byte[] buf, int off, int len)
len
bytes from the specified byte array starting at offset off
to this stream. If automatic flushing is enabled then the flush
method will be
invoked.
Note that the bytes will be written as given; to write characters that will be translated
according to the platform's default character encoding, use the print(char)
or
println(char)
methods.
write
in class FilterOutputStream
buf
- A byte arrayoff
- Offset from which to start taking byteslen
- Number of bytes to writeFilterOutputStream.write(int)
public void write(int b)
flush
method will be invoked.
Note that the byte is written as given; to write a character that will be translated according to
the platform's default character encoding, use the print(char)
or
println(char)
methods.
write
in class FilterOutputStream
b
- The byte to be writtenprint(char)
,
println(char)