Java Nio 分享

最近在学习Java Nio,网上查了一些例子,也到sun的官网看了下,找到一篇关于NIO介绍的文章,由于是英文,自己将它翻译过来了,先记录下进行备案。
[url]http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/guide/nio/[/url]
一些基本概念:
Channel —— 通道
Charset —— 字符集
Buffer —— 缓存
[size=large]一、什么是NIO[/size]
NIO APIs 是在JDK1.4 引入的新特性,它大大提高了缓存管理、可伸缩的网络应用程序和文件I/O的性能,增加了字符集设置,正则表达式支持等功能。NIO APIs 为java.io包中的 I/O 操作提供了基础设施。
[size=large]二、组成部分[/size]
[list]
[*]java.nio package: 缓存,贯穿整个NIO APIs
[*]java.nio.channels package: 道和选择器
[*]java.nio.charset package: 字符编码
[*]java.nio.channels.spi package: 通道的服务提供者类
[*]java.nio.charset.spi package: 字符集的服务提供者类
[*]在 java.util.regex包中通过正则表达式模式功能,实现匹配字符序列。
[*] java.lang.CharSequence interface 实现了该接口的对象可以通过被当作方法的参数传入。String,StringBuffer和java.nio.CharBuffer类实现了这个接口.
[/list][size=large]注意:[/size]
新的InetSocketAddress和SocketAddress类,严格意义上不是NIO API 的部分,但却用它们。
[size=large]三、使用Java NIO 改进的类[/size]
[table]
|[size=large]改进的类[/size]| [size=large]改进点[/size]
| FileInputStream,FileOutputStream |getChannel方法返回FileChannel对象
|RandomAccessFile|getChannel方法返回FileChannel对象
| InputStreamReader OutputStreamWriter|构造函数已经增加了一个流和一个字符设置对象, 以及getEncoding方法已经修改为返回曾使用过的编码名称。
InputStreamReader和OutputStreamWriter类的构造函数已经分别加上存在的CharsetDecoder和CharsetEncoder作为参数
|String|新加了两个split方法。
又增加了subSequence方法,它是由CharSequence定义,String类已经实现。
另外新增的3个方法:mathches,replaceAll,replaceFirst
|StringBuffer| 增加了subSequence方法,它是由CharSequence 接口定义, StringBuffer 已经实现的
|Thread|Interrupt 方法已经通过线程通道I/O阻断方式进行改进。
|DatagramSocket|receive和send方法已经更改抛出 java.nio.channels.IllegalBlockingModeException如果socket由一个通道,,而且通道是非阻塞模式。Close方法
现在也是关闭Socket的通道,,如果它有一个,而且它新增的方法getChannel也返回当前所使用的通道。
|ServerSocket|Accept和implAccept方法已修改为抛出java.nio. IllegalBlockingModeException 如果socket 已经有一个通道并且通道是在非阻塞模式下。与DatagramSocket类一样增加了getChannel 方法,修改了close方法。
|Socket|getInputStream和getOutputStream方法已经修改为将全部的I/O操作委派给socket的通道,如果它有一个通道。connect方法已经修改为抛出一个 java.nio.IllegalBlockingModeException 如果socket有一个通道并且该通道处于非阻塞模式。与 DatagramSocket类一样,新增了getChannel方法和修改了close方法。
[/table]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值