15.3.3 文件和目录的完全处理
【实例15.2】以上的实例很简单,主要学习函数的用法。下面再看一个稍微复杂的程序。
01 import java.io.*;
02 ///通过print方法来判断这个文件类对象的性质
03 ///通过print1方法来获取文件对象的信息
04 ///通过print2方法来获取文件对象的信息
05 public class file1
06 {
07 public void print(File f)
08 {
09 if(f.isDirectory())
10 {
11 System.out.println("这是一个目录!");
12 }
13 else
14 {
15 System.out.println("这不是一个目录!");
16 }
17 if(f.exists())
18 {
19 System.out.println("这个文件是存在的!");
20 }
21 else
22 {
23 System.out.println("抱歉,这个文件是不存在的!");
24 try
25 {
26 f.createNewFile();
27 }
28 catch(Exception e){}
29 }
30 }
31 public void print1(File f)
32 {
33 System.out.println(f.getName());
34 System.out.println(f.getParent());
35 System.out.println(f.getPath());
36 }
37 public void print2(File f)
38 {
39 if(f.isFile())
40 {
41 System.out.println(f.lastModified());
42 System.out.println(f.length());
43 }
44 }
45 public static void main(String[]args)
46 {
47 file1 f1=new file1();
48 File f=new File("d:\filetest","file.txt");
49 f1.print(f);
50 f1.print1(f);
51 f1.print2(f);
52 }
53 }
【代码说明】上面的程序段是一个比较综合的实例,它使用了File类的很多方法。在程序中,有一点读者可能不是很明白,当第41行要输出最后修改日期时,为什么会输出“1251538022515”呢?这是因为日期是以long类型数据形式输出的。
说明
先在d盘下创建一个目录filetest,然后在其中创建一个file.txt,在这个文本文件中随意添加一些内容。
【运行效果】
这不是一个目录!
这个文件是存在的!
file.txt
d:\filetest
d:\filetest\file.txt
1251538022515 211
【实例15.3】下面再看一个更加复杂的实例。
01 import java.io.*;
02 ///创建8个文件类对象,并且每一个对象产生一个新文本文件
03 ///通过循环语句将这8个文本文件名称和路径输出
04 public class file2
05 {
06 public static void main(String[]args)
07 {
08 //file2 f=new file2();
09 File f1=new File("d:\filetest","1.txt");
10 File f2=new File("d:\filetest","2.txt");
11 File f3=new File("d:\filetest","3.txt");
12 File f4=new File("d:\filetest","4.txt");
13 File f5=new File("d:\filetest","5.txt");
14 File f6=new File("d:\filetest","6.txt");
15 File f7=new File("d:\filetest","7.txt");
16 File f8=new File("d:\filetest");
17 try
18 {
19 f1.createNewFile();
20 f2.createNewFile();
21 f3.createNewFile();
22 f4.createNewFile();
23 f5.createNewFile();
24 f6.createNewFile();
25 f7.createNewFile();
26 }
27 catch(Exception e){}
28 File[]ff=f8.listFiles();
29 for(int i=0;i<ff.length;i++)
30 {
31 System.out.println("文件名称为:"+ff[i]);
32 }
33 }
34 }
【代码说明】以上的程序段,是先创建一个目录“filetest”。然后在目录中,通过使用方法“createNewFile()”创建7个文件。另外,通过使用方法“listFiles()”,将7个文件的文件名存储到“file[]”数组中。然后再读取数组中的每一个元素,即文件名。最后将这7个文件的文件名称分别输出来。
【运行效果】
文件名称为:d:\filetest\1.txt
文件名称为:d:\filetest\2.txt
文件名称为:d:\filetest\3.txt
文件名称为:d:\filetest\4.txt
文件名称为:d:\filetest\5.txt
文件名称为:d:\filetest\6.txt
文件名称为:d:\filetest\7.txt
文件名称为:d:\filetest\file.txt
注意 filetest目录下如果还有其他内容,输出结果可能不同于上述结果。