nio笔记

1.使用通道:  fileinputstream.getChannel()    打开的文件通道只有读权限,没有写权限,如果写,报异常,不要执行写操作。

注意读写权限问题。

2.只有流通道: sockets  pipes可以非阻塞模式, 文件通道总是阻塞式的, 文件io最强大之处在于:异步io,一个进程可以请求多个io操作。

3.文件锁 进程级别。

时间: 2024-10-06 19:27:02

nio笔记的相关文章

Java NIO 笔记

NIO(同步非阻塞IO)是jdk1.4之后推出的new io,它跟BIO(同步阻塞IO)有着非常明显的区别. BIO在调用read/write的时候会阻塞线程,也就是就算某个时刻你的socket并没有数据需要传输,但是你的socket线程却仍然会被阻塞在read/write方法上,所以BIO是一个socket连接一个线程. NIO与BIO不同,它主要依靠事件监听反应器进行工作,一个监听器可以监听好几个socket连接,只有在socket有事件发生(如读写数据,连接到达等)的时候才进行事件分发,开

Java nio 笔记:系统IO、缓冲区、流IO、socket通道

一.Java IO 和 系统 IO 不匹配 在大多数情况下,Java 应用程序并非真的受着 I/O 的束缚.操作系统并非不能快速传送数据,让 Java 有事可做:相反,是 JVM 自身在 I/O 方面效率欠佳.操作系统与 Java 基于流的 I/O模型有些不匹配.操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取(DMA)的协助下完成的.而 JVM 的 I/O 操作类喜欢操作小块数据--单个字节.几行文本.结果,操作系统送来整缓冲区的数据,java.io 包的流数据类再花大量时间

Java NIO笔记(一):NIO介绍

Java NIO即Java Non-blocking IO(Java非堵塞I/O),由于是在Jdk1.4之后添加的一套新的操作I/O工具包,所以通常会被叫做Java New IO.NIO是为提供I/O吞吐量而专门设计.其卓越的性能甚至能够与C媲美. NIO是通过Reactor模式的事件驱动机制来达到Non blocking的,那么什么是Reactor模式呢?Reactor翻译成中文是"反应器",就是我们将事件注冊到Reactor中,当有对应的事件发生时,Reactor便会告知我们有哪些

块IO与流IO简介

简介 所有的io设备都可以被分为流设备和块设备,块设备指的是把数据打包成块进行传输,传输基本单位为块,传输过程中需要缓冲区(buffer)支持,当然,读写也是以块作为基本单位.对于流设备(也称为字符设备),传输过程是以字节流形式进行的,这样的设备是不需要缓冲机制的. 块和流 块:Block:基本的数据单位,一个块通常包含多个字节(字节数目固定) 块设备:Block-Device:其提供的IO操作均是面向块的,也只能面向块,无论是读还是写,(CD,DVD) 流:Stream:基本的数据单位,一个流

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com

Java NIO、NIO.2学习笔记

相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 1. NIO.NIO.2简介 2. NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向

Java NIO读书笔记

简介 NIO的作用就是改进程序的性能.因为有时候程序的性能瓶颈不再是CPU,而是IO.这时候NIO就派上用场了.NIO的原理就是尽量利用系统底层的资源来提高效率,比如利用DMA硬件减小CPU负荷,利用操作系统的epoll机制避免线程频繁切换.通过底层资源提高系统的吞吐量. 缓冲区 缓冲区就是一个固定大小的一组数据.缓冲区有四个非常重要的属性:容量,限制,位置,标记.容量就是一个缓冲区最大能容量的元素数量,限制就是对容量进行逻辑上的限制,位置用于跟踪get或者put方法的位置,标记用于reset函

Java NIO 完全学习笔记(转)

本篇博客依照 Java NIO Tutorial翻译,算是学习 Java NIO 的一个读书笔记.建议大家可以去阅读原文,相信你肯定会受益良多. 1. Java NIO Tutorial Java NIO,被称为新 IO(New IO),是 Java 1.4 引入的,用来替代 IO API的. Java NIO:Channels and Buffers 标准的 Java IO API ,你操作的对象是字节流(byte stream)或者字符流(character stream),而 NIO,你操

读书笔记-NIO的工作方式

读书笔记-NIO的工作方式 1.BIO是阻塞IO,一旦阻塞线程将失去对CPU的使用权,当前的网络IO有一些解决办法:1)一个客户端对应一个处理线程:2)采用线程池.但也会出问题. 2.NIO的关键类Channel和Selector,Selector相当于调度系统,他可以轮询每个Channel的状态,Channel要比Socket更加具体:Buffer类比Stream更加具体: NIO引入Selector.Channel.Buffer就是想把信息具体化,让程序员有机会控制他们. 3.Buffer是