import java.nio.ByteBuffer;
import java.nio.CharBuffer;
public class UsingBuffers {
private static void symmetricScramble(CharBuffer buffer){
//若有介于position和limit之间的元素,则返回true
while(buffer.hasRemaining()){
buffer.mark();
char c1 = buffer.get();
char c2 = buffer.get();
buffer.reset();//把position设为mark的值
buffer.put(c2).put(c1);
}
}
public static void main(String[] args) {
char[] data = "UsingBuffers".toCharArray();
ByteBuffer bb = ByteBuffer.allocate(data.length * 2);
CharBuffer cb = bb.asCharBuffer();
cb.put(data);
System.out.println(cb.rewind());//把position的值设为起始位置
symmetricScramble(cb);
System.out.println(cb.rewind());
symmetricScramble(cb);
System.out.println(cb.rewind());
}
/*
UsingBuffers
sUniBgfuefsr
UsingBuffers
*/
}
分享到:
相关推荐
Channel 是 Java NIO 中的一个核心组件,它是双向的,数据可以从 Channel 读到 Buffer 中,也可以从 Buffer 写到 Channel。Channel 可以设置为非阻塞模式,此时当 Channel 从 Buffer 中读取数据时,如果有待读取的...
通过 Buffer 提供的 API,我们可以灵活地操纵数据。NIO 提供了多种 Buffer 类型,如 ByteBuffer、CharBuffer、DoubleBuffer 等。 Buffer 的主要特点是: * 容量可变:Buffer 的容量可以根据需要进行动态调整。 * ...
还要掌握NIO(New IO)的特性,如通道(Channel)和缓冲区(Buffer)。 6. **多线程**:Java内置了对多线程的支持,理解Thread类和Runnable接口,掌握线程同步(synchronized关键字、wait/notify机制)和并发工具类...
在Java中,文件复制可以通过多种方式实现,包括使用`java.io`包中的`FileInputStream`和`FileOutputStream`类,或者使用`java.nio`包中的`Files`类。以下是一个简单的使用`FileInputStream`和`FileOutputStream`的...
- 学习如何使用JavaScript操纵网页结构、样式和内容。 - **尚硅谷jQuery视频教程** - jQuery 是一个快速、简洁的JavaScript库。 - 重点介绍如何使用jQuery简化HTML文档遍历、事件处理、动画等操作。 - **尚硅谷...