a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 41|回复: 0

[JAVA] 2011年计算机等考二级JAVA学习精华整理(27)

[复制链接]
发表于 2012-7-31 22:04:26 | 显示全部楼层 |阅读模式
1.1.3.2.10 获取文件信息  迄今为止我们的讨论围绕单一的文件输入输出。但是加速I/O性能还有另一方面--和得到文件特性有关。例如,考虑一个打印文件长度的小程序:
7 S" |4 n2 J( Y. A& z3 G+ ~  import java.io.*;
0 H! e" _. d% t9 y  y  public class length1 {$ R8 z2 _. R3 V7 ?' v
  public static void main(String args[]) {
; J% T" U- n( b1 A& A2 G  if (args.length != 1) {' Y8 g- Y# ~& Z. k1 \
  System.err.println("missing filename");
/ a9 T0 d% `) R  System.exit(1);! Y- V% B0 w  t$ ]9 Y( y
  }- X; q% p- [& G
  File f = new File(args[0]);
" B6 U- _5 E, c4 u" s/ r  long len = f.length();
7 x* J1 O2 b0 Y4 l- m) c' r  System.out.println(len);
3 X1 I& c( S2 [3 {6 u6 J  }
+ g2 U1 j) m+ e1 `% b$ A) u( M  }
" b" e6 S" S4 y* x4 i  Java运行时系统自身并不知道文件的长度,因此必须向底层的操作系统查询以获得这个信息,对于文件的其他信息这也成立,例如文件是否是一个目录,文件上次修改时间等等。 java.io包中的File 类提供一套查询这些信息的方法。这些方法总体来说在时间上开销很大因此应该尽可能少用。3 N( f0 G. A8 O
  下面是一个查询文件信息的更长的范例,它递归整个文件系统写出所有的文件路径:
3 A3 s7 ?" _) \3 u% V3 {' L$ a" @/ |  import java.io.*;/ o2 d+ }5 y$ v# F: ]6 D7 W, O; i
  public class roots {
# V& H! U+ V( T  Q' Y( B  public static void visit(File f) {1 W8 `9 c+ ]+ R9 w
  System.out.println(f);2 T  R* c" ]$ K% e/ A  d5 R
  }1 O. x; k& @  _
  public static void walk(File f) {
3 Q* J0 w  L. q' ^. C  visit(f);
) f# P& t0 i) A7 ]  if (f.isDirectory()) {
# L( ~% w( }& @% V  W  String list[] = f.list();, H# C3 G" b5 t2 h: x' j0 K5 S' B
  for (int i = 0; i < list.length; i++)
$ r( {- K7 v  ]4 F9 j3 A- B; \0 k  walk(new File(f, list));
7 g9 s. x( w' d1 C$ e  }+ v) k5 F8 S' L
  }1 O" f& y1 f9 W% D. Z
  public static void main(String args[]) {) z2 K+ ]4 B8 v+ K
  File list[] = File.listRoots();4 U+ V2 D1 |3 ^$ Y  g
  for (int i = 0; i < list.length; i++) {
8 U* h; T6 v4 ^' N9 l  if (list.exists())
( W( {' B) b+ c# e' k  walk(list);' d1 u8 {4 s) O3 j: X
  else7 W' p( ^' c# F9 ]
  System.err.println("not accessible: " + list);
6 S  M9 k* _' c" u  }
3 a- f8 Q+ V3 B# L  }' n9 {9 |6 M* \+ i' A3 V8 N
  }
; }% c8 n, Z1 A0 [" I  这个范例使用 File 方法,例如 isDirectory 和 exists,穿越目录结构。每个文件都被查询一次它的类型 (普通文件或者目录)。
, I  c( x# n2 |; }0 f+ N  这个范例使用 File 方法,例如 isDirectory 和 exists,穿越目录结构。每个文件都被查询一次它的类型 (普通文件或者目录)。
# b+ c( o' m6 L9 F+ b8 G  这个范例使用 File 方法,例如 isDirectory 和 exists,穿越目录结构。每个文件都被查询一次它的类型 (普通文件或者目录)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-19 17:36 , Processed in 0.294847 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表