`

NIO 001

 
阅读更多
填充和释放缓冲区
package com.yale.life.nio;

import java.nio.CharBuffer;

/**
 * 填充和释放缓冲区
 * @author Ron Hitchens
 *
 */
public class BufferFillDrain
{
	public static void main(String[] args)
	{
		CharBuffer buffer = CharBuffer.allocate(100);
		while(fillBuffer(buffer)){
			buffer.flip();
			drainBuffer(buffer);
			buffer.clear();
		}
		
	}
	
	private static void drainBuffer(CharBuffer buffer)
	{
		while(buffer.hasRemaining())
		{
			System.out.println(buffer.get());
		}
		System.out.println(" ");
	}
	private static boolean fillBuffer(CharBuffer buffer)
	{
		if(index >= strings.length)
		{
			return (false);
		}
		String str = strings[index++];
		for(int i=0;i<str.length();i++)
		{
			buffer.put(str.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",
		"if you like nio please go  go go",
		"Help me Help me"
	};
}

分享到:
评论

相关推荐

    基于石墨烯/ NiO界面的电阻切换研究

    本研究中,研究人员利用了六种不同的石墨烯纳米带(aGNR、zGNR 和 zGNR1)与单层和双层&lt;001&gt;-取向的NiO界面进行了研究。通过使用剑桥序列总能量软件包(CASTEP),计算了Mulliken平均和差异种群、界面能量以及界面...

    基于naga开发的TCP客户端/服务器程序

    public void newConnection(NIOSocket nioSocket) { // 可在此处添加处理事件 } public void serverSocketDied(Exception exception) { // 关闭serverSocket处理 } }...

    netty学习资料001

    1. **NIO(非阻塞I/O)**:Netty基于Java NIO API构建,实现了非阻塞的I/O模型,允许单线程处理多个并发连接,提高了系统的并发性能。 2. **Boss线程组与Worker线程组**:Boss线程负责接收新的连接请求,一旦建立...

    java语言教程(001).rar

    学习者还需要熟悉集合框架,如ArrayList、LinkedList、HashMap等,以及IO流和NIO(非阻塞I/O)系统,这些用于数据的输入输出和文件操作。 在高级主题中,线程和并发处理是Java的一大亮点,理解如何创建和管理线程,...

    【Java代码-A001】- 文件

    3. **网页图片保存**:在Java中,可以使用`java.net.URL`类和`java.nio.file`包中的API来读取网页内容,并提取图片数据。一旦获取到图片的二进制数据,可以将其保存到本地文件系统。 4. **网页图片下载**:下载网页...

    apache-tomcat-7.0.100_Windows_64_2020-02-21_001.rar

    这个压缩包“apache-tomcat-7.0.100_Windows_64_2020-02-21_001.rar”包含了Apache Tomcat的7.0.100版本,专为64位Windows操作系统设计。发布日期为2020年2月21日,可能是一个特定的构建或更新。 在Tomcat 7.0.100...

    drive-download-20210323T130402Z-001_DGGJ_

    标题 "drive-download-20210323T130402Z-001_DGGJ_" 暗示这是一个从云端下载的文件包,可能包含与某个项目或课程相关的材料,标签 "DGGJ" 可能是特定主题、课程代码或者是文件的分类标记。 压缩包中的文件名揭示了...

    Java面试八股文001-Java-Java基础

    - **NIO(Non-blocking I/O)**:非阻塞式的I/O模型,基于通道和缓冲区,支持单线程处理多个连接。 - **AIO(Asynchronous I/O)**:异步I/O模型,基于事件通知,真正实现了异步操作,无需轮询即可完成I/O操作。 ...

    ST0245-001

    NIO(非阻塞IO)是Java提供的更高效的数据传输方式。 6. **多线程**:Java内置对多线程的支持,通过Thread类或实现Runnable接口创建线程。理解和掌握线程同步(如synchronized关键字、wait()、notify())和并发控制...

    2018-2019java面试宝典最新版(内附赠旧版)

    6. **IO与NIO**:熟悉Java的输入输出流体系,了解NIO(非阻塞I/O)的优势和用法,以及FileInputStream、FileOutputStream、BufferedReader和BufferedWriter等类的使用。 7. **反射与动态代理**:反射是Java强大的...

    211学校计算机考研机试试题Java版本.zip

    Problem_014可能是关于IO流或者NIO(New IO)的题目,考生需要掌握文件操作、字节流、字符流、缓冲流,以及管道流、对象流等,并理解Java NIO提供的非阻塞I/O模型。 在复习过程中,考生还应该关注Java的异常处理...

    ab-1746-TD001A-zh

    在描述中提及的“1746-FIO4I, -FIO4V, -NI4, -NIO4I, -NIO4V, -NI8, NI16I, NI16V, -I/OSLC500™NO4I, -NO4V”这些都是看起来像是特定型号的产品标识符。1746系列是艾伦·布拉德利(Allen-Bradley)的一个产品系列,...

    netty开发入门

    Netty的核心是其NIO(非阻塞I/O)模型,该模型在处理大量并发连接时表现出色,尤其适合高负载、低延迟的网络应用,如游戏服务器、流媒体服务和金融交易平台等。 二、Netty组件 1. **ByteBuf**: Netty中的缓冲区类,...

    14-Java操作Linux命令分割合并文本文件1

    例如,`cat /home/leo/sd_000.txt /home/leo/sd_001.txt /home/leo/sd_002`这个命令会将三个文本文件`sd_000.txt`, `sd_001.txt`, 和 `sd_002`的内容拼接在一起,并显示在终端上。如果想要将结果保存到新的文件中,...

    jdk1.8完整版源码

    jdk1.8完整版源码,包含sunjdk缺失的部分,便于查看nio等源码实现原理

    java 文件切割合并

    同时,如果需要处理大量文件或进行高效操作,还可以利用NIO(New IO)或NIO.2 API,它们提供了更高级的特性,如通道(Channel)和选择器(Selector),能够更好地控制I/O操作。 总之,Java的IO流为我们提供了强大的...

    java博客前前八天代码合集

    此外,可能还会涉及NIO(非阻塞I/O)和File类的相关API。 Day007将涉及Java的反射机制,它是动态获取类信息并进行操作的关键技术。这部分可能会讲解Class类,Method类,Constructor类的使用,以及如何通过反射创建...

    java方面api

    5. **I/O与NIO**:传统的I/O基于字节流和字符流,而`java.nio`包引入了非阻塞I/O,提供更高效的数据传输方式。 6. **异常处理**:Java通过`java.lang.Throwable`类及它的子类(如Exception和Error)来处理程序运行...

Global site tag (gtag.js) - Google Analytics