/**
* 大多数操作系统可以利用虚拟内存将文件或文件一部分映射到内存中,然后这个文件就可以被当做内存数组一样被访问;避免底层IO的开销<p>
* 【通道】是一种用于磁盘文件的一种抽象;<br>
* 它使我们可以访问诸如内存映射,文件加锁机制以及文件间快速数据传递等特性;
*@date:2018年7月5日
*@author:zhangfs */
public class GetChannel { private static final int BSIZE=1024;
public static void main(String[] args) throws IOException { //写
FileChannel fileChannel=new FileOutputStream("data.txt").getChannel();
fileChannel.write( ByteBuffer.wrap("hello".getBytes()));//warp将已存在的数组包装到butebuffer中;
fileChannel.close();
//可读可写
fileChannel=new RandomAccessFile("data.txt", "rw").getChannel();
fileChannel.position(fileChannel.size());//移动到filechannel最后
fileChannel.write(ByteBuffer.wrap(" world".getBytes()));
fileChannel.close();
//读
fileChannel=new FileInputStream("data.txt").getChannel();
ByteBuffer buffer=ByteBuffer.allocate(BSIZE);
fileChannel.read(buffer);
buffer.flip();//让别人读取字符的准备;有利于获取最大速度
while(buffer.hasRemaining()) {
printnb((char)buffer.get());
} }
}

javaNio 通道和缓冲区的更多相关文章

  1. JAVANIO通道

    package com.nio.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import j ...

  2. NIO的通道和缓冲区

    概述 通道和缓冲区是 NIO 中的核心对象,几乎在每一个 I/O 操作中都要使用它们. 通道是对原I/O包中的流的模拟.到任何目的地(或来自任何地方)的所有数据都必须通过一个Channel对象.一个B ...

  3. Java基础——NIO(一)通道与缓冲区

    一.概述 1.什么是NIO NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 在Java ...

  4. STM8 ADC 多个通道连续扫描缓冲区数据带中断模式的正确写法

    近日调试了STM8S的ADC采集多通道数据的程序,按照之前的立即,将ADC1设置为:扫描模式,连续采集,数据缓存模式,中断使能后应该可以在中断后读取到数值了,可是无论怎样都只能读取到第一个缓冲器的数据 ...

  5. JAVA NIO学习二:通道(Channel)与缓冲区(Buffer)

    今天是2018年的第三天,真是时光飞逝,2017年的学习计划还没有学习完成,因此继续开始研究学习,那么上一节我们了解了NIO,那么这一节我们进一步来学习NIO相关的知识.那就是通道和缓冲区.Java ...

  6. Java入门系列-23-NIO(使用缓冲区和通道对文件操作)

    NIO 是什么 java.nio全称java non-blocking(非阻塞) IO(实际上是 new io),是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(bo ...

  7. javaNIO(转载)

    (一) Java NIO 概述 Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Chan ...

  8. JAVA NIO简介-- Buffer、Channel、Charset 、直接缓冲区、分散和聚集、文件锁

    IO  是主存和外部设备 ( 硬盘.终端和网络等 ) 拷贝数据的过程. IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成. Java标准io回顾 在Java1.4之前的I/O系统中,提供 ...

  9. Java NIO入门(二):缓冲区内部细节

    Java NIO 入门(二)缓冲区内部细节 概述 本文将介绍 NIO 中两个重要的缓冲区组件:状态变量和访问方法 (accessor). 状态变量是前一文中提到的"内部统计机制"的 ...

随机推荐

  1. badboy下载

    最近新接触了badboy软件,以下是百度网盘链接,有需要可以下载. 链接:https://pan.baidu.com/s/1O4oIhx-twcaMA_fDzRQPHg提取码:7i44 二维码:

  2. RabbitMQ Go客户端教程5——topic

    本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第五篇--topic. 这些教程涵盖了使用RabbitMQ创建消息传递 ...

  3. PyQt(Python+Qt)学习随笔:invisibleRootItem方法访问QTreeWidget树型部件的隐形根节点

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 我们知道在数据结构上来说,任何树都是有根节点的,但我们在QTreeWidget对象中并没有看到界面上 ...

  4. Mac下安装Mesa

    下载Mesa源代码: git clone https://gitlab.freedesktop.org/mesa/mesa.git 如果下载太慢,请参看 下载国外资源. 我下载后看到的Mesa版本信息 ...

  5. SpringBoot之自定义拦截器

    一.自定义拦截器实现步骤 1.创建拦截器类并实现HandlerInterceptor接口 2.创建SpringMVC自定义配置类,实现WebMvcConfigurer接口中addInterceptor ...

  6. Jenkins 如何实现 拷贝文件到网络共享目录

    在使用jenkins中,发现拷贝文件时,不能在脚本中直接添加脚本实现. 我实现的一种方法,希望能对您有用. net use y: \\server_name\workspace "passw ...

  7. 团队作业part4--项目冲刺

    七天敏捷冲刺汇总 1. Day1 Scrum 冲刺博客 2. Day2 Scrum 冲刺博客 3. Day3 Scrum 冲刺博客 4. Day4 Scrum 冲刺博客 5. Day5 Scrum 冲 ...

  8. 【自用】Notice

    读题 不要把 \(\sum a \oplus b\) 看成异或和. 注意读完整,有可能对原有符号有新的约定,不要想当然. 注意模数的 0 数清楚. 卡常&时间 打题之前一般先搞个自己的缺省源. ...

  9. php curl的使用心得

    php的curl有很多参数,整理一下其中的常用参数的作用 1.CURLOPT_SSL_VERIFYHOST 设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name).译者注:公 ...

  10. uniapp-父组件数组变化同步子组件视图渲染

    项目中子组件封装的是一个picker,父组件需要传数组到子组件中. 如果父组件的数组出现变更,视图中的子组件或许不能直接刷新渲染,需要反复弹起几下才能看到. 试过深度监听,但都没有用,ref也不知道为 ...