Class OutputStreamWriter
- All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable
- Direct Known Subclasses:
FileWriter
charset. The charset that it uses
may be specified by name or may be given explicitly, or the
default charset may be accepted.
Each invocation of a write() method causes the encoding converter to be invoked on the given character(s). The resulting bytes are accumulated in a buffer before being written to the underlying output stream. Note that the characters passed to the write() methods are not buffered.
For top efficiency, consider wrapping an OutputStreamWriter within a BufferedWriter so as to avoid frequent converter invocations. For example:
Writer out = new BufferedWriter(new OutputStreamWriter(anOutputStream));
A surrogate pair is a character represented by a sequence of two
char values: A high surrogate in the range '\uD800' to
'\uDBFF' followed by a low surrogate in the range '\uDC00' to
'\uDFFF'.
A malformed surrogate element is a high surrogate that is not followed by a low surrogate or a low surrogate that is not preceded by a high surrogate.
This class always replaces malformed surrogate elements and unmappable character sequences with the charset's default substitution sequence. The CharsetEncoder class should be used when more control over the encoding process is required.
- Since:
- 1.1
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an OutputStreamWriter that uses the default character encoding, or whereoutis aPrintStream, the charset used by the print stream.OutputStreamWriter(OutputStream out, String charsetName) Creates an OutputStreamWriter that uses the named charset.OutputStreamWriter(OutputStream out, Charset cs) Creates an OutputStreamWriter that uses the given charset.OutputStreamWriter(OutputStream out, CharsetEncoder enc) Creates an OutputStreamWriter that uses the given charset encoder. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the stream, flushing it first.voidflush()Flushes the stream.Returns the name of the character encoding being used by this stream.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
-
OutputStreamWriter
Creates an OutputStreamWriter that uses the named charset.- Parameters:
out- An OutputStreamcharsetName- The name of a supportedcharset- Throws:
UnsupportedEncodingException- If the named encoding is not supported
-
OutputStreamWriter
Creates an OutputStreamWriter that uses the default character encoding, or whereoutis aPrintStream, the charset used by the print stream.- Parameters:
out- An OutputStream- See Also:
-
OutputStreamWriter
Creates an OutputStreamWriter that uses the given charset.- Parameters:
out- An OutputStreamcs- A charset- Since:
- 1.4
-
OutputStreamWriter
Creates an OutputStreamWriter that uses the given charset encoder.- Parameters:
out- An OutputStreamenc- A charset encoder- Since:
- 1.4
-
-
Method Details
-
getEncoding
Returns the name of the character encoding being used by this stream.If the encoding has an historical name then that name is returned; otherwise the encoding's canonical name is returned.
If this instance was created with the
OutputStreamWriter(OutputStream, String)constructor then the returned name, being unique for the encoding, may differ from the name passed to the constructor. This method may returnnullif the stream has been closed.- Returns:
- The historical name of this encoding, or possibly
nullif the stream has been closed - See Also:
-
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.- Specified by:
writein classWriter- Parameters:
cbuf- Buffer of charactersoff- Offset from which to start writing 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- Parameters:
str- A Stringoff- Offset from which to start writing characterslen- Number of characters to write- Throws:
IndexOutOfBoundsException- Ifoffis negative, orlenis negative, oroff + lenis negative or greater than the length of the given stringIOException- 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
-