Class BufferedWriter
- All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable
The buffer size may be specified, or the default size may be accepted. The default is large enough for most purposes.
A newLine() method is provided, which uses the platform's own
notion of line separator as defined by the system property
line.separator. Not all platforms use the newline character ('\n')
to terminate lines. Calling this method to terminate each output line is
therefore preferred to writing a newline character directly.
In general, a Writer sends its output immediately to the
underlying character or byte stream. Unless prompt output is required, it
is advisable to wrap a BufferedWriter around any Writer whose
write() operations may be costly, such as FileWriters and
OutputStreamWriters. For example,
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
PrintWriter's output to the file. Without buffering,
each invocation of a print() method would cause characters to be
converted into bytes that would then be written immediately to the file,
which can be very inefficient.- API Note:
- Once wrapped in a
BufferedWriter, the underlyingWritershould not be used directly nor wrapped with another writer. - Since:
- 1.1
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionBufferedWriter(Writer out) Creates a buffered character-output stream that uses a default-sized output buffer.BufferedWriter(Writer out, int sz) Creates a new buffered character-output stream that uses an output buffer of the given size. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the stream, flushing it first.voidflush()Flushes the stream.voidnewLine()Writes a line separator.voidwrite(char[] cbuf, int off, int len) Writes a portion of an array of characters.voidwrite(int c) Writes a single character.voidWrites a portion of a String.Methods declared in class Writer
append, append, append, nullWriter, write, writeModifier and TypeMethodDescriptionappend(char c) Appends the specified character to this writer.append(CharSequence csq) Appends the specified character sequence to this writer.append(CharSequence csq, int start, int end) Appends a subsequence of the specified character sequence to this writer.static WriterReturns a newWriterwhich discards all characters.voidwrite(char[] cbuf) Writes an array of characters.voidWrites a string.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Constructor Details
-
BufferedWriter
Creates a buffered character-output stream that uses a default-sized output buffer.- Parameters:
out- A Writer
-
BufferedWriter
Creates a new buffered character-output stream that uses an output buffer of the given size.- Parameters:
out- A Writersz- Output-buffer size, a positive integer- Throws:
IllegalArgumentException- Ifsz <= 0
-
-
Method Details
-
write
Writes a single character.- Overrides:
writein classWriter- Parameters:
c- int specifying a character to be written- Throws:
IOException- If an I/O error occurs
-
write
Writes a portion of an array of characters.Ordinarily this method stores characters from the given array into this stream's buffer, flushing the buffer to the underlying stream as needed. If the requested length is at least as large as the buffer, however, then this method will flush the buffer and write the characters directly to the underlying stream. Thus redundant
BufferedWriters will not copy data unnecessarily.- Specified by:
writein classWriter- Parameters:
cbuf- A character arrayoff- Offset from which to start reading characterslen- Number of characters to write- Throws:
IndexOutOfBoundsException- Ifoffis negative, orlenis negative, oroff + lenis negative or greater than the length of the given arrayIOException- If an I/O error occurs
-
write
Writes a portion of a String.- Overrides:
writein classWriter- Implementation Requirements:
- While the specification of this method in the
superclass
recommends that an
IndexOutOfBoundsExceptionbe thrown iflenis negative oroff + lenis negative, the implementation in this class does not throw such an exception in these cases but instead simply writes no characters. - Parameters:
s- String to be writtenoff- Offset from which to start reading characterslen- Number of characters to be written- Throws:
IndexOutOfBoundsException- Ifoffis negative, oroff + lenis greater than the length of the given stringIOException- If an I/O error occurs
-
newLine
Writes a line separator. The line separator string is defined by the system propertyline.separator, and is not necessarily a single newline ('\n') character.- Throws:
IOException- If an I/O error occurs
-
flush
Flushes the stream.- Specified by:
flushin interfaceFlushable- Specified by:
flushin classWriter- Throws:
IOException- If an I/O error occurs
-
close
Description copied from class:WriterCloses the stream, flushing it first. Once the stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously closed stream has no effect.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classWriter- Throws:
IOException- If an I/O error occurs
-