JAVA NIO 全书 译稿_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA NIO 全书 译稿

JAVA NIO 全书 译稿

 2011/10/31 8:29:25  裴小星  http://xxing22657-yahoo-com-cn.iteye.com  我要评论(0)
  • 摘要:JAVANIO全书译稿前言本书介绍了Java平台上的高级输入/输出,具体点说,就是使用Java2标准版(J2SE)软件开发包(SDK)1.4及以后版本进行的输入/输出。J2SE1.4版代号Merlin,包含可观的I/O新特性,对此我们将作详细论述。这些新的I/O特性主要包含在java.nio软件包及其子包中,并被命名为NewI/O(NIO)。通过本书,您将学会如何使用这些令人兴奋的新特性来极大地提升Java应用程序的I/O效率。第一章简介面向对象的程序设计讲的无非就是封装。封装是个好东西
  • 标签:Java

JAVA NIO 全书 译稿?

?

?

前言?

?

  本书介绍了Java平台上的高级输入/输出,具体点说,就是使用Java 2标准版(J2SE)软件开发包(SDK1.4及以后版本进行的输入/输出。J2SE 1.4版代号Merlin,包含可观的I/O新特性,对此我们将作详细论述。这些新的I/O特性主要包含在java.nio软件包及其子包中,并被命名为New I/ONIO)。通过本书,您将学会如何使用这些令人兴奋的新特性来极大地提升Java应用程序的I/O效率。?  

?

?

第一章 简介?

?

  面向对象的程序设计讲的无非就是封装。封装是个好东西:它分解任务,隐藏实施细节,提高对象的重复利用率。这样的分解、整合既适用于程序,也适用于程序员。您没准就是一位技艺高超的Java程序员,创建极其复杂的对象,完成惊世骇俗的任务,而对支撑Java平台的基本I/O概念却几乎一无所知。本章,我们暂且把封装问题抛在一边,先来看看某些底层I/O实施细节,希望有助于你更好地组织协调各个零部件的I/O操作。

? ?

第二章 缓冲区?

?

  一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。缓冲区如我们在第一章所讨论的那样被写满和释放。对于每个非布尔原始数据类型都有一个缓冲区类。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。非字节缓冲区可以在后台执行从字节或到字节的转换,这取决于缓冲区是如何创建的。我们将在本章节后面的部分检查缓冲区数据存储的含义。

  缓冲区的工作与通道紧密联系。通道是I/O传输发生时通过的入口,而缓冲区是这些数据传输的来源或目标。对于离开缓冲区的传输,您想传递出去的数据被置于一个缓冲区,被传送到通道。对于传回缓冲区的传输,一个通道将数据放置在您所提供的缓冲区中。这种在协同对象(通常是您所写的对象以及一到多个Channel对象)之间进行的缓冲区数据传递是高效数据处理的关键。通道将在第三章被详细涉及。??

?

第三章 通道?

?

  Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。

  多数情况下,通道与操作系统的文件描述符(File Descriptor)和文件句柄(File Handle)有着一对一的关系。虽然通道比文件描述符更广义,但您将经常使用到的多数通道都是连接到开放的文件描述符的。Channel类提供维持平台独立性所需的抽象过程,不过仍然会模拟现代操作系统本身的I/O性能。

  通道是一种途径,借助该途径,可以用最小的总开销来访问操作系统本身的I/O服务。缓冲区则是通道内部用来发送和接收数据的端点。?

?

第四章 选择器?

?

?  选择器(Selector)提供选择执行已经就绪的任务的能力,这使得多元I/O成为可能。就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个I/O通道(channels)。

  有时我们需要采用快速检查大量资源中的任意一个是否需要关注,而在某些东西没有准备好时又不必被迫等待的通用模式。这种检查并继续的能力是可扩展性的关键,它使得仅仅使用单一的线程就可以通过就绪选择来监控大量的通道。
  选择器及相关的类就提供了这种 API,使得我们可以在通道上进行就绪选择。
?

?

第五章 正则表达式??

?

  本章我们将讨论新的程序包java.util.regex(见图5-1)中类的API(译注10)。JSR51,即Java规范请求(Java Specification Request),定义了新的I/O权能,它还明确了添加到Java平台上的正则表达式处理技术。尽管严格说来正则表达式并不是I/O,但是它们最常用于浏览从文件或数据流(stream)中读取的文本数据。

  Perl、egrep和其它文本处理工具有着功能强大的模式匹配(pattern matching),本章中你将学会如何使用新的Java API达到相同的模式匹配效果。??

?

第六章 字符集?

?

  在Java平台上,我们经常需要处理多种语言以及组成这些语言的多个字符。幸运的是,Java是第一个被广泛使用的编程语言,它使用内在的Unicode来表示字符。与以字节为导向的编程语言例如C或C++相比,Unicode的固有支持大大的简化了字符数据处理,但决不是自动地处理字符。您仍需要理解字符映射的工作原理以及如何处理多个字符集。?

?

  欢迎批评指正、探讨交流。
  同时欢迎有出版合作意向的出版社洽谈出版事宜。

  • Java_NIO.rar (2 MB)
  • 下载次数: 1223
发表评论
用户名: 匿名