- java.lang.Object
-
- java.io.OutputStream
-
- org.xnio.streams.ChannelOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class ChannelOutputStream extends java.io.OutputStream
An output stream which writes to a stream sink channel. All write operations are directly performed upon the channel, so for optimal performance, a buffering output stream should be used to wrap this class.- Since:
- 1.2
-
-
Field Summary
Fields Modifier and Type Field Description protected StreamSinkChannel
channel
-
Constructor Summary
Constructors Constructor Description ChannelOutputStream(StreamSinkChannel channel)
Construct a new instance.ChannelOutputStream(StreamSinkChannel channel, long timeout, java.util.concurrent.TimeUnit unit)
Construct a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
flush()
long
getWriteTimeout(java.util.concurrent.TimeUnit unit)
Get the write timeout.void
setWriteTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Set the write timeout.void
write(byte[] b)
void
write(byte[] b, int off, int len)
void
write(int b)
-
-
-
Field Detail
-
channel
protected final StreamSinkChannel channel
-
-
Constructor Detail
-
ChannelOutputStream
public ChannelOutputStream(StreamSinkChannel channel)
Construct a new instance. No write timeout is configured.- Parameters:
channel
- the channel to wrap
-
ChannelOutputStream
public ChannelOutputStream(StreamSinkChannel channel, long timeout, java.util.concurrent.TimeUnit unit)
Construct a new instance.- Parameters:
channel
- the channel to wraptimeout
- the write timeoutunit
- the write timeout units
-
-
Method Detail
-
getWriteTimeout
public long getWriteTimeout(java.util.concurrent.TimeUnit unit)
Get the write timeout.- Parameters:
unit
- the time unit- Returns:
- the timeout in the given unit
-
setWriteTimeout
public void setWriteTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Set the write timeout. Does not affect write operations in progress.- Parameters:
timeout
- the write timeout, or 0 for noneunit
- the time unit
-
write
public void write(int b) throws java.io.IOException
- Specified by:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] b) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
-