网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.网络数据流的java处理(2).
.JAVA 开发工具Jcreator使用技巧总.
.深入探讨SQL Server 2000对XML的.
.详解Java规则引擎与其API.
.写Java程序最容易犯的21种错误.
.Java文件操作大全.
.J2EE应用服务器与JBuilder集成的.
.J2SE5.0新特性之ProcessBuilder.
.在J2ME手机编程中使用字体和颜色.
.NEGATIVE_INFINITY 属性.
.深入掌握Java技术 EJB调用原理分.
.Servlet是什么?.
.设计模式之Strategy(策略).
.实战角度比较EJB2和EJB3的异同.
.JAVA入门(1) 什么是JAVA.
.精通Hibernate之映射继承关系八.
.基于WebSphere MQ的收发消息程序.
.SUN JAVA认证的内容和认知度.
.成为GUI的最好的朋友并揭开Liar .
.Struts 1.1 安装、示例篇.

调整JavaTM 的I/O性能(一)(zt)

发表日期:2008-1-5



  调整JavaTM 的I/O性能
这篇文章讨论并举例阐述了提高JavaTM I/O性能的多种技术。绝大多数技术是围绕着磁盘文件I/O的调整来谈 的,但是,有些技术对网络I/O和视窗输出也同样适用。首先介绍的技术包含底层I/O问题,然后对诸如压 缩、格式化和序列化这样的高层I/O进行讨论。但是,请注重,本讨论不涉及应用设计问题, 搜索算法和数 据结构的选择,也不讨论类似文件高速缓存(file caching)这样的系统级问题。


当讨论Java I/O时,Java编程语言所假定的两种不同的磁盘文件组织是没有任何意义的。这两种磁盘文件组 织,一种基于字节流,另一种基于字符序列。在 Java语言中,一个字符使用两个字节表示,而不是象C语言 那样使用一个字节表示一个字符。正因为如此,从文件中读取字符时需要一些转换。在某些情况下,这样的 区别非常重要,我们将用几个例子对此进行说明。


底层I/O问题
简介
加速I/O的基本规则
缓冲
读/写文本文件
格式化的开销
随机存储

高层I/O问题
压缩
高速缓存
标志化(Tokenization)
序列化(Serialization)
获取文件信息
更多的信息
加速I/O的基本规则


作为开始讨论的一种方法,下面列出了加速I/O的一些基本规则:


1.避免访问磁盘

2.避免访问下面的操作系统

3.避免方法调用

4.避免对字节和字符的单独处理


显然,这些规则不能被全面而严格地应用,因为假如那样的话,I/O就不可能工作了。但是,为了查看规则是 如何被应用的,就考虑下面的三个例子,这些例子计算一个文件中换行符('\n')的数目。


方法一:读取的方法


第一个方法简单地利用一个文件输入流(FileInputStream)上的读方法:


      import java.io.*;



      public class intro1 {

          public static void main(String args[]) {

              if (args.length != 1) {

                 System.err.println("missing filename");

                 System.exit(1);

              }

              try {

                  FileInputStream fis =

                      new FileInputStream(args[0]);

                  int cnt = 0;

上一篇:电话管理系统.java 人气:895
下一篇:第1个简单java程序 人气:1631
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐