zoukankan      html  css  js  c++  java
  • 获取文件信息

    迄今为止我们的讨论围绕单一的文件输入输出。但是加速I/O性能还有另一方面--和得到文件特性有关。例如,考虑一个打印文件长度的小程序:

    import java.io.*;

    public class length1 {

       public static void main(String args[]) {

            if (args.length != 1) {

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

                System.exit(1);

            }

            File f = new File(args[0]);

            long len = f.length();

            System.out.println(len);

       }

    }

    Java运行时系统自身并不知道文件的长度,因此必须向底层的操作系统查询以获得这个信息,对于文件的其他信息这也成立,例如文件是否是一个目录,文件上次修改时间等等。 java.io包中的File 类提供一套查询这些信息的方法。这些方法总体来说在时间上开销很大因此应该尽可能少用。

    下面是一个查询文件信息的更长的范例,它递归整个文件系统写出所有的文件路径:

     import java.io.*;

    public class roots {

       public static void visit(File f) {

            System.out.println(f);

       }

       public static void walk(File f) {

            visit(f);

            if (f.isDirectory()) {

                String list[] = f.list();

                for (int i = 0; i < list.length; i++)

                     walk(new File(f, list[i]));

            }

       }

       public static void main(String args[]) {

            File list[] = File.listRoots();

            for (int i = 0; i < list.length; i++) {

                if (list[i].exists())

                     walk(list[i]);

                else

                     System.err.println("not accessible: " + list[i]);

            }

       }

    }

    这个范例使用 File 方法,例如 isDirectory 和 exists,穿越目录结构。每个文件都被查询一次它的类型 (普通文件或者目录)。

     

  • 相关阅读:
    "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 java程序员
    Android巴士转发 java程序员
    好记性不如烂笔头之 ——CP命令 java程序员
    linux之移植内核linux2.6.32psp03.00.01.06 编译出错 java程序员
    eoeAndroid社区转发 java程序员
    id 与 class的区别
    ASP+ACCESS转成ASP+SQL程序应如何修改
    怎么样才能让层显示在FLASH之上呢
    用Javascript作消息提示框(类似于QQ用户上线的消息提示)
    改善用户体验之Alert提示效果
  • 原文地址:https://www.cnblogs.com/borter/p/9434284.html
Copyright © 2011-2022 走看看