Class OutputStreamWriter
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:
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.
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an OutputStreamWriter that uses the default character encoding, or where out is a PrintStream, the charset used by the print stream.Creates an OutputStreamWriter that uses the named charset.Creates an OutputStreamWriter that uses the given charset.Creates an OutputStreamWriter that uses the given charset encoder. -
Method Summary
All MethodsInstance MethodsConcrete MethodsModifier 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 new Writer which 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()Creates and returns a copy of this object.booleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?>getClass()Returns the runtime class of this Object.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis)Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos)Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Constructor Details
-
OutputStreamWriter
Creates an OutputStreamWriter that uses the named charset.Parameters: out - An OutputStream charsetName - The name of a supported charset Throws: UnsupportedEncodingException - If the named encoding is not supported -
OutputStreamWriter
Creates an OutputStreamWriter that uses the default character encoding, or where out is a PrintStream, 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 OutputStream cs - A charset Since: 1.4 -
OutputStreamWriter
Creates an OutputStreamWriter that uses the given charset encoder.Parameters: out - An OutputStream enc - A charset encoder Since: 1.4
-
-
Method Details
-
getEncoding
Returns the name of the character encoding being used by this stream.Returns: The historical name of this encoding, or possibly null if the stream has been closed See Also: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 return null if the stream has been closed.
-
write
Writes a single character.Overrides: write in class Writer 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: write in class Writer Parameters: cbuf - Buffer of characters off - Offset from which to start writing characters len - Number of characters to write Throws: IndexOutOfBoundsException - If off is negative, or len is negative, or off + len is negative or greater than the length of the given array IOException - If an I/O error occurs -
write
Writes a portion of a string.Overrides: write in class Writer Parameters: str - A String off - Offset from which to start writing characters len - Number of characters to write Throws: IndexOutOfBoundsException - If off is negative, or len is negative, or off + len is negative or greater than the length of the given string IOException - If an I/O error occurs -
flush
Flushes the stream.Specified by: flush in interface Flushable Specified by: flush in class Writer 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: close in interface AutoCloseable Specified by: close in interface Closeable Specified by: close in class Writer Throws: IOException - If an I/O error occurs
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.