深入理解Apache Mina (6)---- Java Nio ByteBuffer与Mina ByteBuffer的区别
2009-09-16 00:00:00 来源:WEB开发网上图简单的表示了容量、极限、位置在缓存区中的位置。其中极限只能标记容量以内的位置,即极限值的大小不能超过容量。同样位置是用来标记程序对缓存区进行读或写操作的开始位置。程序只能在极限以内的范围进行读写,即读写操作不能超过极限的范围,所以位置值的大小也不能超过极限。三者的大小关系为:容量> 极限 > 位置 >=0 。
上面说到ByteBuffer 的三个属性只是缓存区的标记位置。那么如何改变这些标记的位置呢? ByteBuffer 提供了一下三种方法来改变上面的属性值。
1) clear():极限设置为容量,位置设为 0 。
2) flip():极限设为位置,位置设为 0 。
3)rewind():不改变极限,位置设为 0 。
Java代码
// JDK没有提供ByteBuffer的公开构造方法只能通过该
// 方法来创建一个缓存区。
ByteBuffer buffer = ByteBuffer.allocate(1024);
// ========测试缓存读写一个字符串=======//
String userName ="chinaestone";
char[] charArray = userName.toCharArray();
System.out.println("这是往缓存中存放的 字符串");
for(int i=0;i<charArray.length;i++){
System.out.println(charArray[i]);
buffer.putChar(charArray[i]);
}
buffer.limit(buffer.position());
buffer.position(0);
System.out.println();
System.out.println("这是缓存中取出来的 字符串");
while(buffer.hasRemaining()){
System.out.println(buffer.getChar());
}
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››理解C#中静态Static与单例Singleton
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››理解 Symbian 中的 ECom
赞助商链接