`
yxx676229549
  • 浏览: 73891 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java.nio的学习记录

阅读更多

nio的作用:提高速度

        包括FileChannel,相当于数据的存储;

      ByteBuffer,相当于每次读取的一部分数据存储器。

 

 

package star20110531;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;


public class GetChannel {

	private static final int BSIZE = 1024;
	
	public static void main(String[] args) throws IOException {
		//FileOutputStream产生一个FileChannel通道
		FileChannel fileChannel = new FileOutputStream("B05\\star20110531\\test.txt").getChannel();
		//ByteBuffer相当于往这个通道提供的一份份数据
		//wrap()是将字节数组放到ByteBuffer这个缓冲区中
		fileChannel.write(ByteBuffer.wrap("star very good".getBytes()));
		fileChannel.close();
		
		
		//add to the end of the file
		fileChannel = new RandomAccessFile("B05\\star20110531\\test.txt","rw").getChannel();
		//移动位置
		fileChannel.position(fileChannel.size());
		fileChannel.write(ByteBuffer.wrap("bobo is good too".getBytes()));
		fileChannel.close();
		
		//读取数据
		fileChannel = new FileInputStream("B05\\star20110531\\test.txt").getChannel();
		ByteBuffer byteBuffer = ByteBuffer.allocate(BSIZE);
		System.out.println(byteBuffer);
		//上面的syso结果:java.nio.HeapByteBuffer[pos=0 lim=1024 cap=1024]
		fileChannel.read(byteBuffer);
		byteBuffer.flip();
		//flip()方法首先对当前位置设置限制,然后将该位置设置为零。如果已定义了标记,则丢弃该标记。
//		System.out.println(byteBuffer.flip());
		//上面的syso结果:java.nio.HeapByteBuffer[pos=0 lim=0 cap=1024]
		while(byteBuffer.hasRemaining()){
			System.out.print(byteBuffer.remaining()+"->");
			System.out.print((char)byteBuffer.get()+"\t");
		}
		
	}
}
 
分享到:
评论

相关推荐

    Java NIO学习笔记——ByteBuffer用法

    ByteBuffer的用法是Java NIO学习中的核心内容。 首先,我们了解下ByteBuffer的基本概念。ByteBuffer是一个字节缓冲区,可以存储字节序列。在NIO中,所有的数据读写都通过缓冲区进行,ByteBuffer与其他类型的Buffer...

    JAVA NIO学习笔记.docx

    Java NIO(New Input/Output)是Java标准库在JDK 1.4引入的一组新的I/O API,它提供了一种不同于传统IO的高效、非阻塞的I/O操作方式。NIO的核心概念包括Channel、Buffer和Selector,它们共同构建了一个与操作系统...

    javaNIO.xmind

    自己总结的java中NIO的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者

    良葛格Java JDK 5[1].0学习笔记

    Java JDK 5.0是Java开发工具包的一个重要版本,由Sun Microsystems(后被Oracle收购)于2004年发布。...通过阅读“良葛格Java JDK 5.0学习笔记”,读者可以系统地学习和掌握这些内容,进一步提升自己的Java编程技能。

    java学习笔记1(java io/nio)

    java学习笔记1(java io/nio)设计模式

    nio demo for nio学习笔记(体系结构以及模块介绍)

    **NIO(Non-blocking Input/Output)**是Java在1.4版本引入的一种新的I/O模型,它提供了与传统I/O不同的数据处理方式。在传统的IO模型中,数据的读写是阻塞式的,即在读取或写入数据时,程序会暂停执行,等待数据...

    SimpleDirectoryListener 用 java实现的简单的目录监听器

    通过分析和理解`SimpleDirectoryListener`源码,你可以学习到如何使用Java的文件系统API来处理文件系统事件,这是一项非常实用的技能,特别是在需要实时响应文件系统变化的应用场景中。同时,这也是一个很好的机会,...

    Java JDK 7学习笔记 PDF

    5. **NIO.2文件系统API**:引入了`java.nio.file`包,提供了一套新的文件系统操作API,支持文件路径操作、文件属性查询和变更、文件观察等,相比传统的I/O操作更加强大和高效。 6. **字符串拼接优化**:JDK 7对字符...

    javaNIO学习笔记

    ### Java NIO 学习笔记 #### 一、概述 Java NIO (Non-Blocking IO,也称为 Java New IO),是 Java 对传统 IO 模型的一次重大改进,旨在提高程序处理大量并发连接的能力。NIO 的核心组件包括 Channels、Buffers 和 ...

    java NIO学习系列 笔记

    Java NIO(New Input/Output)是Java标准库在JDK 1.4版本中引入的一个新特性,它提供了一种不同于传统IO流的高效I/O处理方式。NIO的核心概念包括通道(Channel)和缓冲区(Buffer),这两个组件使得数据以块的形式...

    基于Java的实例源码-目录监视器源程序.zip

    学习和理解这些源码可以帮助我们更好地掌握Java的文件系统监控能力,以及如何在实际项目中实现高效可靠的目录监视器。在开发过程中,根据具体需求,我们可以选择使用标准的`WatchService`API,或者采用第三方库来...

    java java java.zip

    在Java学习的过程中,`java_study-master`这个文件名很可能是一个项目或教程的仓库名称,通常在学习资源中,这样的命名表示这是一个关于Java学习的资料集,可能是代码示例、练习项目或者是课程笔记。 在Java编程中...

    java API文档

    - **java.util.logging**:日志记录支持。 - **java.util.prefs**:用户偏好设置支持。 - **java.util.regex**:正则表达式支持。 - **java.util.spi**:服务提供者接口支持。 - **java.util.zip**:ZIP压缩和...

    javaNIO学习笔记(csdn)————程序.pdf

    Java NIO,全称Non-Blocking Input/Output,是非阻塞式输入输出,它是Java从1.4版本开始引入的一种新的I/O模型,为Java程序员提供了处理I/O操作的新方式。NIO的主要特点是其能够使Java程序以更有效的方式处理I/O流,...

    java面试笔试题库java学习笔记开发教程互联网公司面试资料大全合集.zip

    java_Java_学习笔记.pdf Java_Performance.pdf java代码效率优化.docx Java内存模型的历史变迁.docx Java在游戏服务器开发中的应用.docx java基础总结大全.txt Java开发与技术挑战——关于技术的技术思考.docx Java...

    《java学习》-java学习笔记.zip

    这份《java学习》笔记包含了多个核心主题,旨在帮助初学者和有经验的开发者深入理解和掌握Java技术。 1. **正则表达式(正则.md)**: 正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了...

    JAVA课程学习笔记.doc

    本篇学习笔记将深入解析Java线程池的框架、结构、原理以及相关源码,帮助读者全面理解线程池的工作机制。 1. 线程池模块结构 线程池框架分为多层结构,其中包括核心实现类、辅助类和接口等组件。例如,`sun.nio.ch....

    Javajdk5学习笔记

    以下是对"Javajdk5学习笔记"中可能包含的知识点的详细解析: 1. **自动装箱与拆箱**:JDK 5引入了自动装箱和拆箱功能,使得基本类型和它们对应的包装类之间可以无缝转换,提高了代码的简洁性。例如,`Integer i = ...

    Java JDK 6学习笔记.zip

    这个压缩包“Java JDK 6学习笔记.zip”显然是一个包含有关Java JDK 6深入学习资源的集合,可能是PDF文档、笔记或者其他形式的教学材料。 在Java JDK 6中,有几个关键的特性值得我们关注: 1. **改进的性能**:JDK ...

    java编写的命令行文件/文件夹管理程序

    Java编写的命令行文件/文件夹管理程序是一个实用工具,它允许用户通过命令行界面执行常见的文件操作。...通过学习和理解这些知识点,不仅可以更好地理解和使用这个程序,也能提升Java编程和系统管理的技能。

Global site tag (gtag.js) - Google Analytics