public interface SeekableByteChannel extends ByteChannel
Modifier and Type | Method and Description |
---|---|
long |
position()
返回此频道的位置。
|
SeekableByteChannel |
position(long newPosition)
设置此频道的位置。
|
int |
read(ByteBuffer dst)
从该通道读取到给定缓冲区的字节序列。
|
long |
size()
返回此通道连接到的实体的当前大小。
|
SeekableByteChannel |
truncate(long size)
将连接此通道的实体截断为给定大小。
|
int |
write(ByteBuffer src)
从给定的缓冲区向该通道写入一个字节序列。
|
int read(ByteBuffer dst) throws IOException
从该通道的当前位置开始读取字节,然后使用实际读取的字节数来更新位置。 否则,此方法的行为与ReadableByteChannel
接口中的规定完全相同。
read
在界面
ReadableByteChannel
dst
- 要传输字节的缓冲区
ClosedChannelException
- 如果此频道关闭
AsynchronousCloseException
- 如果另一个线程在读取操作正在进行时关闭此通道
ClosedByInterruptException
- 如果另一个线程在读取操作正在进行时中断当前线程,从而关闭通道并设置当前线程的中断状态
IOException
- 如果发生其他I / O错误
int write(ByteBuffer src) throws IOException
字节从该通道的当前位置开始写入,除非通道连接到一个实体,例如使用APPEND
选项打开的文件,在这种情况下,位置首先提前到最后。 如果需要,生成通道连接到的实体以容纳写入的字节,然后用实际写入的字节数来更新位置。 否则,此方法的行为与WritableByteChannel
接口的规定完全相同。
write
中的
WritableByteChannel
src
- 要检索字节的缓冲区
ClosedChannelException
- 如果此通道关闭
AsynchronousCloseException
- 如果另一个线程在写操作正在进行时关闭此通道
ClosedByInterruptException
- 如果另一个线程在写操作正在进行时中断当前线程,从而关闭通道并设置当前线程的中断状态
IOException
- 如果发生其他I / O错误
long position() throws IOException
ClosedChannelException
- 如果此通道关闭
IOException
- 如果发生其他I / O错误
SeekableByteChannel position(long newPosition) throws IOException
将位置设置为大于当前大小的值是合法的,但不会更改实体的大小。 稍后在这样的位置读取字节的尝试将立即返回文件结束指示。 稍后在这样的位置写入字节的尝试将导致实体增长以适应新的字节; 未指定上一个文件结尾和新写入的字节之间的任何字节的值。
连接到使用APPEND
选项打开的实体(通常为文件)时,不建议设置通道的位置。 当打开追加时,该位置首先在写入之前提前到最后。
newPosition
- 新位置,从实体开始的字节数的非负整数
ClosedChannelException
- 如果此通道关闭
IllegalArgumentException
- 如果新位置为负
IOException
- 如果发生其他I / O错误
long size() throws IOException
ClosedChannelException
- 如果此频道关闭
IOException
- 如果发生其他I / O错误
SeekableByteChannel truncate(long size) throws IOException
如果给定的大小小于当前大小,那么实体将被截断,丢弃超出新端的字节。 如果给定的大小大于或等于当前大小,则实体不被修改。 在任一种情况下,如果当前位置大于给定大小,则将其设置为该大小。
size
- 新的大小,非负字节数
NonWritableChannelException
- 如果这个频道没有开放写作
ClosedChannelException
- 如果此通道关闭
IllegalArgumentException
- 如果新大小为负数
IOException
- 如果发生其他I / O错误