?? e169. reading from a channel with a bytebuffer.txt
字號:
This example uses a ByteBuffer to read from a channel. The tricky part of this operation is to remember to properly set the buffer's position before and after a read.
try {
// Obtain a channel
ReadableByteChannel channel = new FileInputStream("infile").getChannel();
// Create a direct ByteBuffer; see also e158 Creating a ByteBuffer
ByteBuffer buf = ByteBuffer.allocateDirect(10);
int numRead = 0;
while (numRead >= 0) {
// read() places read bytes at the buffer's position so the
// position should always be properly set before calling read()
// This method sets the position to 0
buf.rewind();
// Read bytes from the channel
numRead = channel.read(buf);
// The read() method also moves the position so in order to
// read the new bytes, the buffer's position must be set back to 0
buf.rewind();
// Read bytes from ByteBuffer; see also
// e159 Getting Bytes from a ByteBuffer
for (int i=0; i<numRead; i++) {
byte b = buf.get();
}
}
} catch (Exception e) {
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -