APIdia Launch Partner
Top Description Fields Constructors Methods
sun.nio.ch

pack-priv Class ChannelOutputStream

extends OutputStream
Class Inheritance
Imports
java.io.IOException, .OutputStream, java.nio.ByteBuffer, java.nio.channels.IllegalBlockingModeException, .SelectableChannel, .WritableByteChannel, java.util.Objects

An OutputStream that writes bytes to a channel.
Authors
Mark Reinhold, Mike McCloskey

Field Summary

Modifier and TypeField and Description
private byte[]
private ByteBuffer
private byte[]
private final WritableByteChannel

Constructor Summary

AccessConstructor and Description
pack-priv
ChannelOutputStream(WritableByteChannel ch)

Initialize a ChannelOutputStream that writes to the given channel.

Method Summary

Modifier and TypeMethod and Description
pack-priv WritableByteChannel
channel()

Returns: The channel wrapped by this stream.

public void
close()

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Closes this output stream and releases any system resources associated with this stream.

public synchronized void
write(int b)

Implements abstract java.io.OutputStream.write.

Writes the specified byte to this output stream.

public synchronized void
write(byte[] bs, int off, int len)

Overrides java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream.

private void
writeFully(ByteBuffer bb)

Write all remaining bytes in buffer to the channel.

Inherited from java.io.OutputStream:
flushnullOutputStreamwrite

Field Detail

b1back to summary
private byte[] b1
bbback to summary
private ByteBuffer bb
bsback to summary
private byte[] bs
chback to summary
private final WritableByteChannel ch

Constructor Detail

ChannelOutputStreamback to summary
pack-priv ChannelOutputStream(WritableByteChannel ch)

Initialize a ChannelOutputStream that writes to the given channel.

Method Detail

channelback to summary
pack-priv WritableByteChannel channel()
Returns:WritableByteChannel

The channel wrapped by this stream.

closeback to summary
public void close() throws IOException

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Doc from java.io.OutputStream.close.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs.
writeback to summary
public synchronized void write(int b) throws IOException

Implements abstract java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
writeback to summary
public synchronized void write(byte[] bs, int off, int len) throws IOException

Overrides java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

Annotations
@Override
Exceptions
IOException:
if an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.
writeFullyback to summary
private void writeFully(ByteBuffer bb) throws IOException

Write all remaining bytes in buffer to the channel. If the channel is selectable then it must be configured blocking.