六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 76|回复: 0

【转载】JAVA NIO 简介

[复制链接]

升级  0%

10

主题

10

主题

10

主题

秀才

Rank: 2

积分
50
 楼主| 发表于 2013-1-19 04:08:13 | 显示全部楼层 |阅读模式
原文链接:http://www.iteye.com/topic/834447
1.  基本概念
IO是主存和外部设备(硬盘、终端和网络等)拷贝数据的过程。IO是操作系统的底层功能实现,底层通过I/O指令进行完成。
所有语言运行时系统提供执行I/O较高级别的工具。(cprintf scanf,java的面向对象封装)
2.  Java 标准io回顾
Java标准IO类库是io面向对象的一种抽象。基于本地方法的底层实现,我们无须关注底层实现。 InputStream\OutputStream(字节流):一次传送一个字节。 Reader\Writer(字符流):一次一个字符。
3.  nio简介
niojava New IO的简称,在jdk1.4里提供的新apiSun官方标榜的特性如下:
–    为所有的原始类型提供(Buffer)缓存支持。
–    字符集编码解码解决方案。
–    Channel:一个新的原始I/O抽象。
–    支持锁和内存映射文件的文件访问接口。
–    提供多路(non-bloking)非阻塞式的高伸缩性网络I/O
本文将围绕这几个特性进行学习和介绍。
4. Buffer&Chanel
ChannelbufferNIO是两个最基本的数据类型抽象。
Buffer:
–       是一块连续的内存块。
–       是NIO数据读或写的中转地。
Channel:
–       数据的源头或者数据的目的地
–       用于向buffer提供数据或者读取buffer数据,buffer对象的唯一接口。
–       异步I/O支持


图1:channel和buffer关系
 

 

例子1:CopyFile.java:


<span style="font-size: small;"><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表