File类---Day28

2022-10-12,

概述

  java.io.file 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 

构造方法

  1.public file(string pathname) :通过将给定的路径名获得file对象

  2.public file(string parent, string child) :从父路径名字符串和子路径名获得file对象。

  3.public file(file parent, string child) :从父抽象路径名和子路径名获得file对象。 

 1 package demosummary.file;
 2 
 3 import java.io.file;
 4 
 5 /**
 6  * public file(string pathname) :通过将给定的路径名获得file对象
 7  * public file(string parent, string child) :从父路径名字符串和子路径名获得file对象
 8  * public file(file parent, string child) :从父抽象路径名和子路径名获得file对象
 9  */
10 public class filedemo1 {
11     public static void main(string[] args) {
12         //public file(string pathname) :通过将给定的路径名获得file对象
13         string pathname = "d:\\a.txt";
14         file file = new file(pathname);
15 
16         //public file(string parent, string child) :从父路径名字符串和子路径名获得file对象
17         string parent = "d:\\a";
18         string child = "a.txt";
19         file file1 = new file(parent, child);
20 
21         //public file(file parent, string child) :从父抽象路径名和子路径名获得file对象
22         file parentdir = new file("d:\\a");
23         string child1 = "a.txt";
24         file file2 = new file(parentdir, child1);
25     }
26 }

  备注:  

    1. 一个file对象代表硬盘中实际存在的一个文件或者目录。

    2. 无论该路径下是否存在文件或者目录,都不影响file对象的创建。

绝对路径和相对路径(最开始已了解,再次复习)

  绝对路径:从盘符开始的路径,这是一个完整的路径。

  相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。

文件创建和删除方法

  1.public boolean createnewfile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

  2.public boolean delete() :删除由此file表示的文件或目录。

  3.public boolean mkdir() :创建由此file表示的目录。

  4.public boolean mkdirs() :创建由此file表示的目录,包括任何必需但不存在的父目录。

 1 package demosummary.file;
 2 
 3 import java.io.file;
 4 import java.io.ioexception;
 5 
 6 /**
 7  *   1.public boolean createnewfile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
 8  *
 9  *   2.public boolean mkdir() :创建由此file表示的目录。
10  *
11  *   3.public boolean mkdirs() :创建由此file表示的目录,包括任何必需但不存在的父目录。
12  *
13  *   4.public boolean delete() :删除由此file表示的文件或目录。
14  */
15 public class filecreat {
16     public static void main(string[] args) throws ioexception {
17         //1.public boolean createnewfile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
18         file file = new file("a.txt");
19         system.out.println("是否创建文件:"+file.createnewfile());
20 
21         //2.public boolean mkdir() :创建由此file表示的目录。
22         file file1 = new file("newdir");
23         system.out.println("是否创建目录:"+file1.mkdir());
24 
25         //3.public boolean mkdirs() :创建由此file表示的目录,包括任何必需但不存在的父目录。
26         file file2 = new file("newdir\\newdir");
27         system.out.println("是否创建多级目录:"+file2.mkdirs());
28 
29         //4.public boolean delete() :删除由此file表示的文件或目录。
30         system.out.println("是否删除文件:"+file.delete());
31         system.out.println("是否删除目录:"+file2.delete());
32         //delete方法,如果此file表示目录,则目录必须为空才能删除
33     }
34 }

常用方法

  1.public string getabsolutepath() :返回此file的绝对路径名字符串。

  2.public string getpath() :将此file转换为路径名字符串。

  3.public string getname() :返回由此file表示的文件或目录的名称。

  4.public long length() :返回由此file表示的文件的长度。 

 1 package demosummary.file.fileresources;
 2 
 3 import java.io.file;
 4 
 5 /**
 6  *   public string getabsolutepath() :返回此file的绝对路径名字符串。
 7  *
 8  *   public string getpath() :将此file转换为路径名字符串。
 9  *
10  *   public string getname() :返回由此file表示的文件或目录的名称。
11  *
12  *   public long length() :返回由此file表示的文件的长度。
13  */
14 public class filedemo2 {
15     public static void main(string[] args) {
16         file file = new file("d:\\1.txt");
17         system.out.println("文件的绝对路径:"+file.getabsolutepath());
18         system.out.println("文件的构造路径:"+file.getparent());
19         system.out.println("文件名:"+file.getname());
20         system.out.println("文件的长度:"+file.length());
21         /**
22          * 输出结果
23          * 文件的绝对路径:d:\1.txt
24          * 文件的构造路径:d:\
25          * 文件名:1.txt
26          * 文件的长度:15
27          */
28     }
29 }

  length(),表示文件的长度。但是file对象表示目录,则返回值未指定

文件或目录的判断方法

  1.public boolean exists() :此file表示的文件或目录是否实际存在。

  2.public boolean isdirectory() :此file表示的是否为目录。

  3.public boolean isfile() :此file表示的是否为文件。

 1 package demosummary.file;
 2 
 3 import java.io.file;
 4 
 5 /**
 6  *   1.public boolean exists() :此file表示的文件或目录是否实际存在。
 7  *
 8  *   2.public boolean isdirectory() :此file表示的是否为目录。
 9  *
10  *   3.public boolean isfile() :此file表示的是否为文件。
11  */
12 public class filedetermine {
13     public static void main(string[] args) {
14         file file = new file("d://1.txt");
15         file file1 = new file("d://1.txt");
16         file file2 = new file("d://download");
17         system.out.println("文件或目录是否存在:"+file.exists());
18         system.out.println("是否为文件:"+file1.isfile());
19         system.out.println("是否为目录:"+file2.isdirectory());
20         /**
21          * 输出结果
22          * 文件或目录是否存在:true
23          * 是否为文件:true
24          * 是否为目录:true
25          */
26 
27     }
28 }

目录的遍历

  1.public string[] list() :返回一个string数组,表示该file目录中的所有子文件或目录。
  2.public file[] listfiles() :返回一个file数组,表示该file目录中的所有的子文件或目录。

 

 1 package demosummary.file;
 2 
 3 import java.io.file;
 4 
 5 /**
 6  * 1.public string[] list() :返回一个string数组,表示该file目录中的所有子文件或目录。
 7  * 2.public file[] listfiles() :返回一个file数组,表示该file目录中的所有的子文件或目录。
 8  */
 9 public class fileiterate {
10     public static void main(string[] args) {
11         //1.public string[] list() :返回一个string数组,表示该file目录中的所有子文件或目录。
12         file dir = new file(".//src//demosummary//file");
13         string[] list = dir.list();
14         for (string s : list) {
15             system.out.println(s);
16         }
17 
18         system.out.println("--------分割线--------");
19         
20         //2.public file[] listfiles() :返回一个file数组,表示该file目录中的所有的子文件或目录。
21         file[] files = dir.listfiles();
22         for (file file : files) {
23             system.out.println(file);
24         }
25 
26         /**
27          * 输出结果
28          * a.txt
29          * filecreat.java
30          * filedemo1.java
31          * filedemo2.java
32          * filedetermine.java
33          * fileiterate.java
34          * fileresources
35          * --------分割线--------
36          * .\src\demosummary\file\a.txt
37          * .\src\demosummary\file\filecreat.java
38          * .\src\demosummary\file\filedemo1.java
39          * .\src\demosummary\file\filedemo2.java
40          * .\src\demosummary\file\filedetermine.java
41          * .\src\demosummary\file\fileiterate.java
42          * .\src\demosummary\file\fileresources
43          */
44     }
45 }
 1 package demosummary.file;
 2 
 3 import java.io.file;
 4 
 5 /**
 6  * 1.public string[] list() :返回一个string数组,表示该file目录中的所有子文件或目录。
 7  * 2.public file[] listfiles() :返回一个file数组,表示该file目录中的所有的子文件或目录。
 8  */
 9 public class fileiterate {
10     public static void main(string[] args) {
11         //1.public string[] list() :返回一个string数组,表示该file目录中的所有子文件或目录。
12         file dir = new file(".//src//demosummary//file");
13         string[] list = dir.list();
14         for (string s : list) {
15             system.out.println(s);
16         }
17 
18         system.out.println("--------分割线--------");
19         
20         //2.public file[] listfiles() :返回一个file数组,表示该file目录中的所有的子文件或目录。
21         file[] files = dir.listfiles();
22         for (file file : files) {
23             system.out.println(file);
24         }
25 
26         /**
27          * 输出结果
28          * a.txt
29          * filecreat.java
30          * filedemo1.java
31          * filedemo2.java
32          * filedetermine.java
33          * fileiterate.java
34          * fileresources
35          * --------分割线--------
36          * .\src\demosummary\file\a.txt
37          * .\src\demosummary\file\filecreat.java
38          * .\src\demosummary\file\filedemo1.java
39          * .\src\demosummary\file\filedemo2.java
40          * .\src\demosummary\file\filedetermine.java
41          * .\src\demosummary\file\fileiterate.java
42          * .\src\demosummary\file\fileresources
43          */
44     }
45 }

  调用listfiles方法的file对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。 

《File类---Day28.doc》

下载本文的Word格式文档,以方便收藏与打印。