`

[java][nio]用Buffer操纵数据

阅读更多

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
	 
	 */

}


分享到:
评论

相关推荐

    Java NIO.docx

    Channel 是 Java NIO 中的一个核心组件,它是双向的,数据可以从 Channel 读到 Buffer 中,也可以从 Buffer 写到 Channel。Channel 可以设置为非阻塞模式,此时当 Channel 从 Buffer 中读取数据时,如果有待读取的...

    快速了解Java中NIO核心组件

    通过 Buffer 提供的 API,我们可以灵活地操纵数据。NIO 提供了多种 Buffer 类型,如 ByteBuffer、CharBuffer、DoubleBuffer 等。 Buffer 的主要特点是: * 容量可变:Buffer 的容量可以根据需要进行动态调整。 * ...

    java考试招聘面试题及总结

    还要掌握NIO(New IO)的特性,如通道(Channel)和缓冲区(Buffer)。 6. **多线程**:Java内置了对多线程的支持,理解Thread类和Runnable接口,掌握线程同步(synchronized关键字、wait/notify机制)和并发工具类...

    JAVA 对文件的操作

    在Java中,文件复制可以通过多种方式实现,包括使用`java.io`包中的`FileInputStream`和`FileOutputStream`类,或者使用`java.nio`包中的`Files`类。以下是一个简单的使用`FileInputStream`和`FileOutputStream`的...

    最新尚硅谷全套视频

    - 学习如何使用JavaScript操纵网页结构、样式和内容。 - **尚硅谷jQuery视频教程** - jQuery 是一个快速、简洁的JavaScript库。 - 重点介绍如何使用jQuery简化HTML文档遍历、事件处理、动画等操作。 - **尚硅谷...

Global site tag (gtag.js) - Google Analytics