FileChannel fc = new FileInputStream("data.txt").getChannel();
ByteBuffer buff = ByteBuffer.allocate(1024);
fc.read(buff);
buff.flip();?????不明白这句话什么意思?
while (buff.hasRemaining())????这里判断当前位置与限制为之间是否有元素,什么意思?
System.out.print((char) buff.get());
刚接触这个不明白什么意思,麻烦解释下,谢谢
答案:2 悬赏:40 手机版
解决时间 2021-02-04 12:37
- 提问者网友:别再叽里呱啦
- 2021-02-04 03:02
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-02-04 04:08
如果结合API文档,就清晰多了。
1、
public final Buffer flip()
Flips this buffer. The limit is set to the current position and then
the position is set to zero. If the mark is defined then it is
discarded.
2、看英文的意思,判断是否还有数据,有则继续循环
1、
public final Buffer flip()
Flips this buffer. The limit is set to the current position and then
the position is set to zero. If the mark is defined then it is
discarded.
2、看英文的意思,判断是否还有数据,有则继续循环
全部回答
- 1楼网友:从此江山别
- 2021-02-04 05:13
楼主,给你简单分析下:
1、flip()
使缓冲区为一系列新的通道写入或相对获取 操作做好准备:它将限制(limit)设置为当前位置(position),然后将位置(position)设置为 0,将标记mark记为-1。
源码实现如下:
public final buffer flip()
{
this.limit = this.position;
this.position = 0;
this.mark = -1;
return this;
}
2、hasremaining()
判断当前位置是否在限制范围内,告知程序在当前位置和限制之间是否有元素,是否继续往下读取数据。
源码如下:
public final boolean hasremaining()
{
return this.position < this.limit;
}
有问题欢迎提问,满意请采纳!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯