易截截图软件、单文件、免安装、纯绿色、仅160KB

调整 Java I/O 性能

这篇文章讨论和阐明了提供 JavaTM I/O 性能的多种技术。大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出。第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题。然而这个讨论没有包含应用设计问题,例如搜索算法和数据结构,也没有讨论系统级的问题,例如文件高速缓冲。
当我们讨论Java I/O时,值得注意的是Java语言采取两种截然不同的磁盘文件结构。一个是基于字节流,另一个是字符序列。在Java语言中一个字符有两个字节表示,而不是像通常的语言如c语言那样是一个字节。因此,从一个文件读取字符时需要进行转换。这个不同在某些情况下是很重要的,就像下面的几个例子将要展示的那样。
低级 I/O I问题
加速I/O的基本规则
缓冲
读写文本文件
格式化的代价
随机访问
高级I/O问题
压缩
高速缓冲
分解
串行化
获取文件信息
更多信息
加速I/O的基本规则
作为这个讨论的开始,这里有几个如何加速I/O的基本规则:
避免访问磁盘
避免访问底层的操作系统
避免方法调用
避免个别的处理字节和字符
很明显这些规则不能在所有的问题上避免,因为如果能够的话就没有实际的I/O被执行。考虑下面的计算文件中的新行符('\n')的三部分范例。
方法1: 读方法
第一个方法简单的使用FileInputStream的read方法:
 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;
        int b;
        while ((b = fis.read()) != -1) {
          if (b == '\n')
            cnt++;
&nb


相关文档:

java:double类型截取俩位小数,不取舍,

public class Split{
 public static void main(String[] args){
       double pai = 3.14159;
        findTwo(pai);
  public static void findTwo(double value){
    System.out.println(new DecimalFormat("0.##"). ......

java:手写MyLinkedList所有方法,增删改查

package arrays.myArray;
public class MyLinkedList {
 private int size = 0;
 private Node1 head = null;
 // 添加
 public void add(Object obj) {
  add(size, obj);
 }
 // 修改
 public void add(int index, Object obj) {
  if (null == head) ......

java:递归:汉罗塔游戏计算出最少的步数

package game;
public class HanTa {
 public static int i = 0;
 public static void main(String[] args){
  calc('A', 'B', 'C', 2);
  System.out.println("最少需要"+i+"步。");
 }
 
 //汉罗塔游戏计算
 public static void calc(char src, char ilde, c ......

java:递归汉罗塔游戏最少的走法

package game;
public class HanTaGame {
 public static void main(String[] args) {
  fun('1', '2', '3', 2);
 }
 // 汉塔游戏解决方案
 public static void fun(char src, char idle, char dest, int n) {
  if (1 == n) {
   System.out.println(src ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号