Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>Socket编程>>使用缓冲IO提高性能
使用缓冲IO提高性能
2007-04-13   来源:www.javaresearch.org  作者:未知

本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站

Java 输入/输出(IO)的性能可以使用标准的缓冲类提升,就像操作系统通过缓冲请求提高它的速度一样。例如,如果一段代码要求从磁盘上读取数据,它会试图读取内存中已有的数据;如果代码希望向磁盘写一些东西,它可能在完成写操作前将输出在内存中存放一段时间以等待更多的数据。 
在Java的IO系统中,将一个字符写入内存比写到磁盘上快得多,例如: 
// 这段代码会抛出 IOException
Writer writer = new FileWriter( new File( "file.txt" ) );
for(int i=0; i<1000; i++) {
    writer.write(""+i);
    writer.write("\n");
}
writer.close( ); 
在这个范例代码中,FileWriter 一次输出一个数字,在Apple Powerbook 上测量消耗的时间,第一次是180毫秒,以后是90毫秒,这个不同可能是JVM的即时(just-in-time)编译导致的。 
给这段代码添加缓冲功能就是在FileWriter上创建一个BufferedWriter 对象。 
//这段代码会抛出IOException
Writer writer = new BufferedWriter(new FileWriter(
                                       new File( "file.txt" )
                                  ) );
for(int i=0; i<1000; i++) {
    writer.write(""+i);
    writer.write("\n");
}
writer.close( ); 
现在BufferedWriter 会决定以什么频率向FileWriter发送写调用。可以使用flush( )方法强制发出写调用。增加了BufferedWriter 后,代码的运行时间是63毫秒。如果是有很多小量的输出,那么BufferedWriter 在缺省条件下的性能提升是非常显著的。 
除了BufferedWriter 外,BufferedOutputStream 也具有相同的品质,对于输入就是BufferedReader 和BufferedInputStream。
需要注意的是缓冲类不光是在文件系统上起作用,任何的Reader/Writer都能进行缓冲以提高字符输入/输出的速度,同样任何OutputStream/InputStream都能进行缓冲以提高字节IO的速度。



  --相关文章--
· 调整nbsp;Javanbsp;I Onbsp;性能 (2007-04-13)
· 用Java实现FTP服务器 (2007-04-13)
· 探讨对象次第读写(Serialization) (2007-04-13)
· 彻底明白Java的IO系统 (2007-04-13)
· 使用缓冲IO提高性能 (2007-04-13)
· 两远程客户端之间的通讯原理 (2007-04-13)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接