JDK1.4新特性之I/O APIs篇(二)

日期: 2007-12-26 作者:BitsCN整理 来源:TechTarget中国

  · 增加了对并发的支持,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

官方微博

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,我只是转译并在适当的地方加上了注释。