· 增加了对并发的支持,NIO类中的大部分方法都支持多个并发的线程。 bitsCN.nET中国网管博客
新的包(packages),类(classes)和接口(interfaces)
为了实现上面提到的那些功能,在Java JDK1.4中新增加以下这些部分来提供支持:
· java.nio包:主要是和Buffers有关的一些类
· java.nio.channels包:主要包括Channels和selectors
· java.nio.charset包:和字符集有关的类
· java.nio.channels.spi包:提供channels服务的类
· java.nio.charset.spi包:提供charsets服务的类
· java.util.regex包:主要是利用正则表达式进行模式匹配的类
· java.lang.CharSequence接口:主要是为java.util.regex包中的一些方法提供一个统一的接口。类String,StringBuffer,java.nio.CharBuffer都重新实现了该接口。
除了这些新增加的类以外,许多原有的类和接口也做了相应的改变。比如FileInputStream和FileOutputStream类中的getChannel、close方法,RandomAccessFile中的getChannel方法等。
几点说明
这些新的I/O APIs的推出,并不意味着原有的I/O APIs的废弃,尽管我们提倡以后尽量使用NIO APIs中的特性。另外,虽然这些NIO APIs都希望做到完全的平台无关性,但是由于I/O工作的特殊性,有些特性还是对操作系统和硬件平台有很大的依赖性,比如可升级的I/O API(scalable I/O API),二进制I/O API(binary I/O API)和新的文件系统接口(new filesystem interface)。所以我们以后在利用这些NIO APIs的时候,应当尽量减少本地代码的部分,做到最大限度的可移植性。
中国网管联盟
一些例子
介绍完这些新特性以后,我想大家都迫切希望能够通过具体的实例来看看它们具体的用法,可不能光说不练。但是,要知道整个NIO APIs涵盖太大的范围,要一个个完整地讲解它们可能需要一本厚厚的书。所以我们今天只想通过一个典型的例子来做一个引导性的讲解,更多的工作需要大家以后在具体的实际编程过程中慢慢学习。
为了方便,我将直接采用Sun Java的例子程序,这个例子包括两个文件:TimeQuery.java和TimeServer.java。前者可以向一系列主机查询时间,后者监听连接并且告诉呼叫者确切的时间。这是个演示NIO socket channels,缓存管理(buffer handling),字符集和正则表达式的很好的例子。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
企业轻松集成SaaS CRM和ERP应用(二)
“这些项目很多都没有取得成功,因为人们把太多时间的浪费在了连接两个系统所用的技术上,而没有重视他们所要集成的业务流程,” Kelman解释说。“如果员工没有看到……
-
比较XML数据存取APIs(二)
SQLXML 3.0的安装将Microsoft.Data.SqlXml集合装到你的机子上。给项目添加对该集合的一个引用,并用以下代码引入名字空间:using Microsoft.Data.SqlXml;
-
比较XML数据存取APIs(一)
SQLXML 3.0的安装将Microsoft.Data.SqlXml集合装到你的机子上。给项目添加对该集合的一个引用,并用以下代码引入名字空间:using Microsoft.Data.SqlXml;
-
基于Google.com的Apis的客户端程序
这是一个非常小的Google客户端程序,原作者是Smile Seo,我只是转译并在适当的地方加上了注释。