Java NIO:从流到流结束的传输
我正在玩NIO库。我正在尝试侦听端口 8888 上的连接,一旦接受连接,就会将该通道中的所有内容转储到 。somefile
我知道如何使用 它,但我想让它与据称超高效的FileChannel.transferFrom
一起工作。ByteBuffers
这是我得到的:
ServerSocketChannel ssChannel = ServerSocketChannel.open();
ssChannel.socket().bind(new InetSocketAddress(8888));
SocketChannel sChannel = ssChannel.accept();
FileChannel out = new FileOutputStream("somefile").getChannel();
while (... sChannel has not reached the end of the stream ...) <-- what to put here?
out.transferFrom(sChannel, out.position(), BUF_SIZE);
out.close();
所以,我的问题是:我如何表达“从
某个频道转移到到达流结束”?
编辑:将1024更改为BUF_SIZE,因为使用的缓冲区的大小与问题无关。