返回信息流如题
private static void channelCopy2 (ReadableByteChannel src, WritableByteChannel dest) throws IOException {
ByteBuffer buffer = ByteBuffer.allocateDirect (16 * 1024);
while (src.read (buffer) != -1) {
buffer.flip( );
dest.write (buffer);
}
buffer.clear( );
}
这是一条镜像帖。来源:北邮人论坛 / java / #52668同步于 2016/8/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
channel.write(buffer)方法会移动buffer的position?还想重复利
sltsss
2016/8/27镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 nuanyangyang 的大作中提到: 】
: Java API怎么说?
额 我只是调试了下 看position变了
例子是吧读取的输入复制一份 我想把同样的buffer再存入一个文件,不过position变了
怎么才能把它写入文件,求建议,题目似乎有字数限制 每台表达清
【 在 sltsss 的大作中提到: 】
: 额 我只是调试了下 看position变了
: 例子是吧读取的输入复制一份 我想把同样的buffer再存入一个文件,不过position变了
: 怎么才能把它写入文件,求建议,题目似乎有字数限制 每台表达清
搞不清楚就读API。每一个方法到底什么变什么不变,API解释得很清楚。顺便留意一下这个Buffer类一开头的叙述: https://docs.oracle.com/javase/8/docs/api/java/nio/Buffer.html
如果就想拷贝文件,用Files.copy方法: https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.nio.file.Path-java.nio.file.Path-java.nio.file.CopyOption...-
【 在 Lamperouge 的大作中提到: 】
: 直接用read(byte[])这样的api能,不知道有没有
恩有,你的意思是直接存放byte[]里操作么?
不用bytebuffer
【 在 nuanyangyang 的大作中提到: 】
:
: 搞不清楚就读API。每一个方法到底什么变什么不变,API解释得很清楚。顺便留意一下这个Buffer类一开头的叙述: https://docs.oracle.com/javase/8/docs/api/java/nio/Buffer.html
: 如果就想拷贝文件,用Files.copy方法: https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.nio.file.Path-java.nio.file.Path-java.nio.file.CopyOption...-
3q,找到了个duplicate()方法,这个可以从头读buffer