- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《java_NIO_入门》.pdf
NIO 入门
在开始之前
关于本教程
新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高
速的、面向块的 I/O 。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就可以利用
低级优化,这是原来的 I/O 包所无法做到的。
在本教程中,我们将讨论 NIO 库的几乎所有方面,从高级的概念性内容到底层的编程细节。除了学习诸如缓冲区和通
道这样的关键 I/O 元素外,您还有机会看到在更新后的库中标准 I/O 是如何工作的。您还会了解只能通过 NIO 来完
成的工作,如异步 I/O 和直接缓冲区。
在本教程中,我们将使用展示 NIO 库的不同方面的代码示例。几乎每一个代码示例都是一个大的 Java 程序的一部分,
您可以在 参考资料 中找到这个 Java 程序。在做这些练习时,我们推荐您在自己的系统上下载、编译和运行这些程序。
在您学习了本教程以后,这些代码将为您的 NIO 编程努力提供一个起点。
本教程是为希望学习更多关于 JDK 1.4 NIO 库的知识的所有程序员而写的。为了最大程度地从这里的讨论中获益,您
应该理解基本的 Java 编程概念,如类、继承和使用包。多少熟悉一些原来的 I/O 库(来自 java.io.* 包)也会有所帮助。
虽然本教程要求掌握 Java 语言的工作词汇和概念,但是不需要有很多实际编程经验。除了彻底介绍与本教程有关的所
有概念外,我还保持代码示例尽可能短小和简单。目的是让即使没有多少 Java 编程经验的读者也能容易地开始学习
NIO。
如何运行代码
源代码归档文件(在 参考资料 中提供)包含了本教程中使用的所有程序。每一个程序都由一个 Java
文件构成。每一个文件都根据名称来识别,并且可以容易地与它所展示的编程概念相关联。
教程中的一些程序需要命令行参数才能运行。要从命令行运行一个程序,只需使用最方便的命令行提
示符。在 Windows 中,命令行提供符是 “Command” 或者 “” 程序。在 UNIX
中,可以使用任何 shell 。
需要安装 JDK 1.4 并将它包括在路径中,才能完成本教程中的练习。如果需要安装和配置 JDK 1.4
的帮助,请参见 参考资料 。
关于作者
Greg Travis 是一位自由 Java 程序员和技术撰稿人,现居住在纽约市。Greg 于 1992 年开始其
编程生涯,在高端 PC 游戏领域工作了三年。1995 年,他加入了 EarthWeb,在那里他开始用 Java
编程语言开发新技术。1997 年后,Greg 成为各个 Web 技术领域的顾问,致力于实时图像和声音。
他的兴趣包括算法优化、编程语言设计、信号处理(侧重于音乐)以及实时三维图像。 Greg 撰写的
其他文章可从 他的个人 Web 页 上找到。他还是 Manning Publications 出版的 JDK 1.4
Tutorial 一书的作者。
关本教程的技术问题或建议,可通过 mito@ 或单击任何小节顶部的“反馈”与 Greg
Travis 联系。
输入/输出:概念性描述
I/O 简介
I/O �C 或者输入/输出 �C 指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计
算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分
的工作。
在 Java 编程中,直到最近一直使用 流 的方式完成 I/O 。所有 I/O 都被视为单个的字节的移动,通过一个称为
Stream 的对象一次移动一个字节。流 I/O 用于与外部世界接触。它也在内部使用,用于将对象转换为字节,然后再
转换回对象。
NIO 与原来的 I/O 有同样的作用和目的,但是它使用不同的方式�C 块 I/O 。正如您将在本教程中学到的,块 I/O 的
效率可以比流 I/O 高许多。
为什么要使用 NIO?
NIO 的创建目的是为了让 Java 程序员可以实现高速 I/O 而无需编写自定义的本机代码。NIO 将最耗时的 I/O 操作
(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。
流与块的比较
原来的 I/O 库(在 java.io.* 中) 与 NIO 最重要的区别是数据打包和传输的方式。正如前面提到的,原来的 I/O 以流
的方式处理数据,而
您可能关注的文档
- 《IEEE列车通信网络(二)》.pdf
- 《IMDS_福特培训教程》.pdf
- 《In the light of evolution VI; brain and behavior》.pdf
- 《Incoterms二零一六国际贸易术语解释通则二零一六(中文版)》.pdf
- 《Incoterm_二零一六_国际贸易术语解释通则学习》.pdf
- 《Informatica PowerCenter8 官方培训资料(精品).pdf》.pdf
- 《INSAR数据处理若干关键技术探讨》.pdf
- 《InterServer优惠码及图文购买教程评测》.pdf
- 《InTouch培训教程讲义_第04讲_InTouch动画链接》.pdf
- 《Intro to vi》.pdf
最近下载
- 数字营销技术应用职业技能等级标准(2021年版).pdf VIP
- 浙江中医药大学《高等数学(上)》内部题库练习期末真题汇编及答案.pdf
- 2025年中国猪肉脯市场调查研究报告.docx
- 部编版二年级语文课文填空汇总.doc VIP
- 国家工商行政管理总局通达商标服务中心招聘模拟备考预测(共1000题)综合模拟试卷+答案解析.docx
- 教科版小学科学知识点汇总.docx VIP
- 部编版二年级语文下册课文填空练习.pdf VIP
- 2025届THUSSAT北京市清华大学中学高考生物二模试卷含解析.doc VIP
- 《数学课程标准》义务教育2022年修订版(原版).pdf VIP
- 半中半理论_del35论数字心理.pdf VIP
文档评论(0)