File基本操作

File
(1)File是文件和目录路径名的抽象表示。IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件。


(2)构造方法

根据一个路径得到一个File对象
         A:File file = new File("e:\\demo\\a.txt");   

根据一个目录和一个子文件/目录得到File对象
        B:File file = new File("e:\\demo","a.txt");  

根据一个父File对象和一个子文件/目录得到一个File对象
       C:File file = new File("e:\\demo");
       File file2 = new File(file,"a.txt");

public static void main(String[] args) {
		File file = new File("E:\\demo\\a.txt");
		
		File file2 = new File("E:\\demo", "a.txt");
		
		File file3 = new File("e:\\demo");
		File file4 = new File(file3, "a.txt");
	}

  


(3)File类的功能
    A:创建功能

     public boolean createNewFile()   创建文件  如果存在就不创建了

     public boolean mkdir()   创建文件夹  如果存在这样的文件夹就不创建了

     public boolean mkdirs()   创建文件夹  如果父文件夹不存在,会帮您创建出来

    

 1 public class FileDemo1 {
 2     public static void main(String[] args) throws IOException {
 3         File file = new File("e:\\demo");
 4         System.out.println("mkdir:" + file.mkdir());
 5         
 6         File file2 = new File("e:\\demo\\a.txt");
 7         System.out.println("ceateNewFile:" + file2.createNewFile());
 8         
 9         File file3 = new File("e:\\aaa\\bbb\\ccc\\dddd");
10         System.out.println("mkdir:" + file3.mkdirs());
11     }
12 
13 }

     
B:删除功能

    public boolean delete()

    注意:如果创建文件或文件夹没有指定盘符路径,默认在项目路径下

              Java中的删除不走回收站的哦

              要删除一个文件夹,这是这个文件夹下面不能包含文件或文件夹

     

 1 public class FileDemo2 {
 2     public static void main(String[] args) throws IOException {
 3         File file = new File("a.txt");
 4         System.out.println("createNewFile:" + file.createNewFile());
 5         
 6         File file2 = new File("aaa\\bbb\\ccc");
 7         System.out.println("mkdirs:" + file2.mkdirs());
 8         
 9         System.out.println("delete:" + file.delete());
10         //删除ccc文件夹
11         System.out.println("delete:" + file2.delete());
12         
13         //删除aaa文件夹
14         File file3 = new File("aaa\\bbb");
15         File file4 = new File("aaa");
16         System.out.println("delete:" + file3.delete());
17         System.out.println("delete:" + file4.delete());
18         
19     }
20     
21 
22 }


C:重命名功能

    pulbic boolean renameTo(File desc)

 1 public class FileDemo3 {
 2     public static void main(String[] args) {
 3         //先创建一个文件对象
 4         File file = new File("aaa.jpg");
 5         
 6         //修改成“bbb.jpg”
 7         File newfile = new File("bbb.jpg");
 8         
 9         System.out.println("renameTo:" + file.renameTo(newfile));
10     }
11 
12 }


D:判断功能

  public boolean isDirectory():判断是否是目录

  public boolean isFile():判断是否是文件

  public boolean exists():判断是否存在

  public boolean canRead():判断是否可读

  public boolean canWrite():判断是否可写

  public boolean isHidden():判断是否隐藏

 1 public class FileDemo4 {
 2     
 3     public static void main(String[] args) {
 4         File file = new File("a.txt");
 5         
 6         System.out.println("isDirectory:" + file.isDirectory());
 7         System.out.println("idFile:" + file.isFile());
 8         System.out.println("exists:" + file.exists());
 9         System.out.println("canRead:" + file.canRead());
10         System.out.println("canWrite:" + file.canWrite());
11         System.out.println("isHidden:" + file.isHidden());
12         
13         
14     }
15 }


E:获取功能

* public String getAbsolutePath() :获取绝对路径
* public String getPath() :获取相对路径
* public String getName() :获取名称
* public long length() :获取字节数
* public long lastModifiled() :获取最后一次修改时间

 1 public class FileDemo5 {
 2     /**
 3      * public String getAbsolutePath() :获取绝对路径
 4      * public String getPath() :获取相对路径
 5      * public String getName() :获取名称
 6      * public long length()   :获取字节数
 7      * public long lastModifiled()  :获取最后一次修改时间
 8      */
 9 
10     public static void main(String[] args) {
11         
12         File file = new File("demo\\a.txt");
13         
14         System.out.println("getAbsolutePath:" + file.getAbsolutePath());
15         System.out.println("getPath:" + file.getPath());
16         System.out.println("getName:" + file.getName());
17         System.out.println("length:" + file.length());
18         System.out.println("lastModifiled:" + file.lastModified());
19         
20         //打印出的时间 1416481977031  转化成年月
21         Date d = new Date(1416481977031L);
22         SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
23         String s = sdt.format(d);
24         System.out.println(s);
25     }
26     
27 }


F:高级获取功能

public String[] list():获取指定目录下的所有文件或者文件夹名称数组
public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
                         这种方法可以对拿到的File文件可以进一步做其他操作,如获取路径等
 1 public class FileDemo6 {
 2     public static void main(String[] args) {
 3         File file = new File("e:\\");
 4         
 5         //public String[] list():获取指定目录下的所有文件或者文件夹名称数组
 6         String[] strArray = file.list();
 7         for(String s : strArray){
 8             System.out.println(s);
 9         }
10         
11         System.out.println("***********************");
12         
13         //public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组
14         //这种方法可以对拿到的File文件做其他操作  如获取路径等
15         File[] fileArray = file.listFiles();
16         for(File f : fileArray){
17             System.out.println(f.getName());
18         }
19         
20     }
21 
22 }


G:过滤器功能

   A:输出指定目录下指定后缀名的文件名称
  a:先获取所有的,在遍历的时候判断,再输出
  b:先判断,再获取,最后直接遍历输出即可

判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
a:先获取所有的,在遍历的时候判断,再输出
 1 /**
 2  * 判断E盘目录下是否含有后缀名为.jpg的文件,如果有就输出文件名称
 3  * 
 4  * 封装E盘目录
 5  * 获取该目录下所有的文件或者文件夹的File数组
 6  * 遍历该File数组得到每一个File对象,然后判断
 7  *     是否是文件
 8  *        是   再判断是否以.jpg结尾
 9  *            是  输出该文件名称
10  *            否 不用管
11  * @author Administrator
12  *
13  */
14 public class FileDemo7 {
15     public static void main(String[] args) {
16         //封装E盘目录
17         File file = new File("e:\\");
18         //获取该目录下所有的文件或者文件夹的File数组
19         File[] fileArray = file.listFiles();
20         //遍历该File数组得到每一个File对象,然后判断
21         for(File f : fileArray){
22             //是否是文件
23             if(f.isFile()){
24                 //是否以.jpg结尾
25                 if(f.getName().endsWith(".jpg")){
26                     //输出该文件名称
27                     System.out.println(f.getName());
28                 }
29                 
30             }
31         }
32     }
33 
34 }

b:先判断,再获取,最后直接遍历输出即可     采用过滤器改进版本,在放入数组时就判断了,后直接输出

 1 public class FileDemo8 {
 2     public static void main(String[] args) {
 3         File file = new File("e:\\");
 4         
 5         String[] strArray = file.list(new FilenameFilter() {
 6             
 7             @Override
 8             public boolean accept(File dir, String name) {
 9                 
10                 return new File(dir, name).isFile() && name.endsWith(".jpg");
11             }
12         });
13         
14         for(String s : strArray){
15             System.out.println(s);
16         }
17     }
18 
19 }



案例批量修改文件名称  

E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi   
改成 E:\评书\三国演义\001_桃园三结义.avi
 1 /**
 2  * 批量修改文件名称
 3  * 
 4  * 思路:
 5  * 封装目录
 6  * 获取该目录下所有的文件的File数组
 7  * 遍历该File数组,得到每一个File对象
 8  * 拼接一个新的名称
 9  * @author Administrator
10  *
11  */
12 public class FileDemo9 {
13     public static void main(String[] args) {
14         //封装目录
15         File srcFolder = new File("E:\\评书\\三国演义");
16         
17         //获取该目录下所有的文件的File数组
18         File[] fileArray = srcFolder.listFiles();
19         
20         //遍历该File数组,得到每一个File对象
21         for(File file : fileArray){
22             //E:\评书\三国演义\三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
23             //改后:  E:\评书\三国演义\001_桃园三结义.avi
24             
25             String name = file.getName();//得到  三国演义_001_[评书网-今天很高兴]_桃园三结义.avi
26             
27             int index = name.indexOf("_");
28             String numberString = name.substring(index + 1, index + 4);//包左不包右  右边要多一个
29             
30             int endindex = name.lastIndexOf('_');
31             String nameString = name.substring(endindex);
32             
33             //拼接
34             String newName = numberString.concat(nameString);//001_桃园三结义.avi
35             
36             File newFile = new File(srcFolder, newName);//E:\\评书\\三国演义\\001_桃园三结义.avi
37             //重命名
38             file.renameTo(newFile);
39             
40         }
41     }
42 
43 }

猜你喜欢

转载自www.cnblogs.com/lyywj170403/p/9269667.html
今日推荐