博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java nio的基础--缓冲区
阅读量:6796 次
发布时间:2019-06-26

本文共 2068 字,大约阅读时间需要 6 分钟。

有一本小书,叫<java nio>, 2002年的中文版PDF。

可以看看,尽管是一本历史感很强的书,

讲解还是很细致的。

由此进深入nio2的话,

那java io的秘密,

就全部清晰了。

package com.ronsoft.books.nio.buffers;import java.nio.CharBuffer;import java.nio.Buffer;import java.nio.ByteBuffer;import java.nio.ByteOrder;public class BufferFillDrain {	public static void main(String[] args) throws Exception {		// TODO Auto-generated method stub		CharBuffer buffer = CharBuffer.allocate(100);		while (fillBuffer(buffer)) {			buffer.flip();			drainBuffer(buffer);			buffer.clear();					}				ByteBuffer byteBuffer = ByteBuffer.allocate(7).order(ByteOrder.BIG_ENDIAN);		CharBuffer charBuffer = byteBuffer.asCharBuffer();		byteBuffer.put(0, (byte)0);		byteBuffer.put(1, (byte)'H');		byteBuffer.put(2, (byte)0);		byteBuffer.put(3, (byte)'i');		byteBuffer.put(4, (byte)0);		byteBuffer.put(5, (byte)'!');		byteBuffer.put(6, (byte)0);		println(byteBuffer);		println(charBuffer);	}		private static void drainBuffer(CharBuffer buffer) {		while (buffer.hasRemaining()) {			System.out.print(buffer.get());		}		System.out.println("");	}		private static boolean fillBuffer(CharBuffer buffer) {		if (index >= strings.length) {			return (false);		}		String string = strings[index++];		for (int i = 0; i < string.length(); i++) {			buffer.put(string.charAt(i));		}		return (true);	}		private static int index = 0;	private static String []strings = {			"A random string value",			"The product of an infinite number of monkeys",			"Hey hey we're the Monkees",			"Opening act for the Monkees: Jimi Hendrix",			"'Scuse me while I kill this fly",			"Help Me! Help Me!",	};			private static void println(Buffer buffer) {		System.out.println("post=" + buffer.position()				+ ", limit=" + buffer.limit()				+ ", capacity=" + buffer.capacity()				+ ": '" + buffer.toString() + "'");	}}
输出如下:

A random string valueThe product of an infinite number of monkeysHey hey we're the MonkeesOpening act for the Monkees: Jimi Hendrix'Scuse me while I kill this flyHelp Me! Help Me!post=0, limit=7, capacity=7: 'java.nio.HeapByteBuffer[pos=0 lim=7 cap=7]'post=0, limit=3, capacity=3: 'Hi!'

转载地址:http://fclgo.baihongyu.com/

你可能感兴趣的文章
错误Name node is in safe mode的解决方法
查看>>
IntentService 与ResultReceiver
查看>>
通用函数之时间转换
查看>>
Apache Tomcat Server Options 选项说明
查看>>
oracle实用sql语句
查看>>
ubuntu下安装android sdk运行模拟器出现错误:
查看>>
RDO部署openstack(1)
查看>>
jQuery 2.0.3 源码分析 钩子机制 - 属性操作
查看>>
ESAPI = Enterprise Security API
查看>>
【翻译】Use a bitmap as a background image
查看>>
2016乌云白帽资料下载
查看>>
echarts在.Net中使用实例(二) 使用ajax动态加载数据
查看>>
[安卓] 1、页面跳转+按钮监听
查看>>
[CareerCup] 15.5 Denormalization 逆规范化
查看>>
重新理解:ASP.NET 异步编程
查看>>
PostgreSQL在何处处理 sql查询之五十二
查看>>
Java开发环境搭建全过程(上)
查看>>
[LeetCode] Spiral Matrix II 螺旋矩阵之二
查看>>
爱上MVC3系列~同步与异步提交,在过滤器里如何进行重定向
查看>>
WordPress 备案期间临时关闭站点设置404
查看>>