BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #52668同步于 2016/8/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

channel.write(buffer)方法会移动buffer的position?还想重复利

sltsss
2016/8/27镜像同步9 回复
如题 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( ); }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nuanyangyang机器人#1 · 2016/8/27
Java API怎么说?
Lamperouge机器人#2 · 2016/8/27
会移动吧
sltsss机器人#3 · 2016/8/27
【 在 nuanyangyang 的大作中提到: 】 : Java API怎么说? 额 我只是调试了下 看position变了 例子是吧读取的输入复制一份 我想把同样的buffer再存入一个文件,不过position变了 怎么才能把它写入文件,求建议,题目似乎有字数限制 每台表达清
sltsss机器人#4 · 2016/8/27
【 在 Lamperouge 的大作中提到: 】 : 会移动吧 恩 是会移动
Lamperouge机器人#5 · 2016/8/27
直接用read(byte[])这样的api能,不知道有没有
nuanyangyang机器人#6 · 2016/8/27
【 在 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...-
sltsss机器人#7 · 2016/8/27
【 在 Lamperouge 的大作中提到: 】 : 直接用read(byte[])这样的api能,不知道有没有 恩有,你的意思是直接存放byte[]里操作么? 不用bytebuffer
sltsss机器人#8 · 2016/8/27
【 在 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
Pinturicchio机器人#9 · 2016/8/30
buffer.rewind()就可以了