- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java_NIO.
调用Java NIO提高文件读写速度2011年11月20日 22:11:33 Java NIO的出现旨在提高文件的读写速度,当然IO用NIO重新实过,所以我们不用显示的调用NIO也能享受这种高效的文件读写。 Java NIO的高效得益于其两大助手:Channel(管道)和Buffer(缓冲器)。当然这两个得力助手的年龄远远比java大!力求简单易懂的把知识讲解给大家,我举一个例子来说明一下这两元大将是如何在java NIO中配合工作的。 中国古代有一种传统的吸烟器具---水烟袋。我想用这个东西来模拟一下Channel和Buffer的工作原理。不求说的好,力求准确无误。 分析一下水烟袋是如何工作的: 第一步,准备工作,准备好上等烟丝;第二步,将水斗中装入适量的水,烟仓中装满烟丝并插入水斗中,然后再将烟管插入水斗中;第三步,点燃烟丝并吸气。香烟从烟仓产生,经过水的过滤进入水上的空闲区。第四步,享受吸烟的快感.....从这个例子中我们提取出主要对象烟,来分析一下它的运动轨迹。烟仓把烟生产出来,经过水的过滤飘到水上面的空闲区域,然后通过烟管进入人的体内。 如果上面的过程大家理解了,明白了,那么java NIO你已经了解了50%,至少你已经知道它的工作原理了。因为用NIO处理的数据和用水烟袋中吸烟很相似。我们分析一下NIO的工作原理,非常简单。 当然和吸烟一样我们首先必须有要用NIO来处理需求的欲望(这好比你想要吸烟了),比方说我想要将C盘下面的wk.txt文件进行备份,备份文件的名称为wk-bak.txt。类比刚刚吸烟的那个过程: 步骤一:准备工作,确定文件的位置,并将程序不可直接操作的文件转换成字符流的形式(这一步和上边吸烟实例的第一步没有什么差别,只是进行一些简单的准备工作)。 String?inFile?=?C:\\wk.txt; String?outFile?=?C:\\wk-bak.txt; FileInputStream?inf?=?new?FileInputStream(inFile); FileOutputStream?outf?=?new?FileOutputStream(outFile); ByteBuffer?buffer?=?ByteBuffer.allocate(1024);? ByteBuffer?buffer?=?ByteBuffer.allocate(1024);? ? 步骤二:创建文件输入管道,和文件输出管道。(这一步与上边吸烟的第二部稍有差别,因为Channel和Buffer是在读写的时候才发生的连接动作) //准备文件读取的管道--相当于烟仓和烟管FileChannel?inFc?=?inf.getChannel(); ? FileChannel?outFc?=?outf.getChannel(); ? Charset?charSet?=?Charset.forName(utf-8); ? //进行编码解码--相当于水斗中水的过滤作用 ? CharsetDecoder?decoder?=?charSet.newDecoder(); ? CharsetEncoder?encoder?=?charSet.newEncoder();? 步骤三:开始进行文件备份工作。 ?while(true)?{??????????? ? ?//准备向Buffer中写入数据--相当于点燃烟丝,完事具备只欠东风 ? ???????buffer.clear();???????????????????????? ? //进行字符编码?--相当于水的过滤作用 ? ???????CharBuffer?cb?=?decoder.decode(buffer); ? ???????ByteBuffer?bb?=?encoder.encode(cb); ? ???????????????????????? ? //数据经过编码以后暂存缓冲区--相当于经过水过滤后的烟暂停在水斗中 ? ????????????int?t?=?inFc.read(bb); ? ????????????if(t?==?-1)?{ ? ????????????????break; ? ????????????} ? ????????????????????????bb.flip(); ? ????????????????????????//将字节码写入目标文件--相当于烟已经进入到嘴里 ? ????????????outFc.write(bb); ? ????????}? ? 步骤四:检查文件是否备份成功。发现C盘下面多了一个wk-bak.txt的文件,内容与
您可能关注的文档
- J.D.Power..docx
- J2418型小型电动机模型介绍..doc
- j13w高压内螺纹针型阀..doc
- J2461型晶体管特性图示仪..doc
- j2ee_MVC+Struts实现管理系统..doc
- J250机械计数器..doc
- J2EE_全面简介..doc
- J23W铬镍不锈钢焊接针形阀..doc
- J2EE工作流管理系统jBPM详解..doc
- j13w内螺纹针型阀..doc
- 2012-2021北京重点校高一(下)期中语文汇编:词类活用.pdf
- 电力市场与经济运行优化:电力市场优化算法_(28).电力市场中的市场力分析.docx
- 医院培训课件:《俯卧位通气的护理》.pptx
- 电力市场与经济运行优化:电力系统能效优化方法_(1).电力市场基础理论.docx
- 电力市场与经济运行优化:电力系统能效优化方法_(9).电力系统运行与能效优化.docx
- 电力市场与经济运行优化:电力系统能效优化方法_(15).电力市场与环境影响分析.docx
- 电力市场与经济运行优化:电力系统优化调度_(1).电力市场基础与原理.docx
- 电力市场与经济运行优化:电力系统优化调度_(14).电力市场改革政策与影响.docx
- 电力市场与经济运行优化:电力系统运行优化_(4).电力系统运行基础.docx
- 2025年航运行业分析.docx
最近下载
- 2024年世界职业院校技能大赛高职组“研学旅行组”赛项参考试题库(含答案).pdf-有哪些信誉好的足球投注网站.docx VIP
- AI赋能教师专题培训:AI生成式人工智能赋能教育高质量发展.pptx VIP
- AI赋能教育的思考与应用 教师培训课件.pptx VIP
- 高速公路服务区污水处理方案.pptx VIP
- 7000雅思词汇用100个句子记完.pdf VIP
- 2025人教版美术三年级上册第二单元 第1课《表情变变变》课件.ppt
- 法学研究方法比较分析.docx VIP
- 保安工作表现自我评价范文.doc VIP
- 比较方法在国际法学中作用.pdf VIP
- 法学研究中的比较研究方法.pptx VIP
文档评论(0)