File类的基本用法


  java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。

File类的常见构造方法:public File(String pathname)

     以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储,如示例所示。

【示例】文件的创建

1
2
3
4
5
6
7
8
9
10
import  java.io.File;
public  class  TestFile1 {
     public  static  void  main(String[] args)  throws  Exception {
         System.out.println(System.getProperty( "user.dir" ));
         File f =  new  File( "a.txt" );  //相对路径:默认放到user.dir目录下面
         f.createNewFile(); //创建文件
         File f2 =  new  File( "d:/b.txt" ); //绝对路径
         f2.createNewFile();
     }
}

     在eclipse项目开发中,user.dir就是本项目的目录。因此,执行完毕后,在本项目和D盘下都生成了新的文件(如果是eclipse下,一定按F5刷新目录结构才能看到新文件)。如图所示。

图8-22 本项目目录中新增文件效果.png

 

通过File对象可以访问文件的属性:

表8-3 File类访问属性的方法列表

表8-3 File类访问属性的方法列表.png

【示例】测试File类访问属性的基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  java.io.File;
import  java.util.Date;
public  class  TestFile2 {
     public  static  void  main(String[] args)  throws  Exception {
         File f =  new  File( "d:/b.txt" );
         System.out.println( "File是否存在:" +f.exists());
         System.out.println( "File是否是目录:" +f.isDirectory());
         System.out.println( "File是否是文件:" +f.isFile());
         System.out.println( "File最后修改时间:" + new  Date(f.lastModified()));
         System.out.println( "File的大小:" +f.length());
         System.out.println( "File的文件名:" +f.getName());
         System.out.println( "File的目录路径:" +f.getPath());
     }
}

      执行结果如图所示:

图8-23 示例8-22运行效果图.png

 

通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)

表8-4 File类创建文件或目录的方法列表

表8-4 File类创建文件或目录的方法列表.png

【示例】使用mkdir创建目录

1
2
3
4
5
6
7
8
9
10
11
import  java.io.File;
public  class  TestFile3 {
     public  static  void  main(String[] args)  throws  Exception {
         File f =  new  File( "d:/c.txt" );
         f.createNewFile();  // 会在d盘下面生成c.txt文件
         f.delete();  // 将该文件或目录从硬盘上删除
         File f2 =  new  File( "d:/电影/华语/大陆" );
         boolean  flag = f2.mkdir();  //目录结构中有一个不存在,则不会创建整个目录树
         System.out.println(flag); //创建失败
     }
}

      执行结果如图所示:

图8-24 示例8-23运行效果图.png

 

【示例】使用mkdirs创建目录

1
2
3
4
5
6
7
8
9
10
11
import  java.io.File;
public  class  TestFile4 {
     public  static  void  main(String[] args)  throws  Exception {
         File f =  new  File( "d:/c.txt" );
         f.createNewFile();  // 会在d盘下面生成c.txt文件
         f.delete();  // 将该文件或目录从硬盘上删除
         File f2 =  new  File( "d:/电影/华语/大陆" );
         boolean  flag = f2.mkdirs(); //目录结构中有一个不存在也没关系;创建整个目录树
         System.out.println(flag); //创建成功
     }
}

      执行结果如图所示:

图8-25 示例8-24运行效果图.png

 

【示例】File类的综合应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import  java.io.File;
import  java.io.IOException;
public  class  TestFile5 {
     public  static  void  main(String[] args) {
         //指定一个文件
         File file =  new  File( "d:/sxt/b.txt" );
         //判断该文件是否存在
         boolean  flag= file.exists();
         //如果存在就删除,如果不存在就创建
         if (flag){
             //删除
             boolean  flagd = file.delete();
             if (flagd){
                 System.out.println( "删除成功" );
             } else {
                 System.out.println( "删除失败" );
             }
         } else {
             //创建
             boolean  flagn =  true ;
             try  {
                 //如果目录不存在,先创建目录
                 File dir = file.getParentFile();
                 dir.mkdirs();
                 //创建文件
                 flagn = file.createNewFile();
                 System.out.println( "创建成功" );
             catch  (IOException e) {
                 System.out.println( "创建失败" );
                 e.printStackTrace();
             }          
         }
         //文件重命名(同学可以自己测试一下)
         //file.renameTo(new File("d:/readme.txt"));
     }
}

      第一次执行结果如图所示:

图8-26 示例8-25第一次运行效果图.png

 

      第二次执行结果如图所示:

图8-27 示例8-25第二次运行效果图.png


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM