44、File类简介

使用File类创建文件夹

File类在java.io包下,看名字应该可以猜到,这个类是跟文件夹操作有关,下面使用File类中的方法在硬盘中创建文件夹。

package com.sutaoyu.file;

import java.io.File;
import java.io.IOException;

public class test_1 {
    public static void main(String[] args) throws IOException {
        //如果文件存在,就不创建了,返回false,如果不存在就会创建,返回true
        File file1 = new File("D:\\hello.txt");
        System.out.println(file1.createNewFile());
        
        //如果文件夹存在,就不创建了,返回false,如果不存在就会创建,返回true
        File file2 = new File("D:\\new");
        System.out.println(file2.mkdirs());
        
        //可以创建多级目录,如果文件夹存在,就不创建了,返回false,如果不存在就会创建,返回true
        File file3 = new File("D:\\onkey\\1024");
        System.out.println(file3.mkdirs());
        
        //只能创建文件夹
        File file4 = new File("D:\\monkey\\1024.txt");
        System.out.println(file4.mkdirs());
        
        //如果不写盘符,会默认在项目的根目录里面创建
        File file5 = new File("1026.txt");
        System.out.println(file5.createNewFile());
        System.out.println(file5.exists());
    }
}

注意:如果没有写盘符路径,默认在项目路径里面创建

使用File类重命名和删除文件

  • public boolean renameTo(File dest):把文件重命名为指定的文件路径
  • public boolean delete():删除文件或者文件夹
package com.sutaoyu.file;

import java.io.File;

public class test_2 {
    public static void main(String[] args) {
//        //旧名字
//        File oldFile = new File("D:\\hello.txt");
//        //新名字
//        File newFile = new File("D:\\world.txt");
//        oldFile.renameTo(newFile);
        
        //旧名字
//        File oldFile = new File("D:\\world.txt");
//        //新名字
//        File newFile = new File("D:\\monkey\\java.txt");
//        //如果两个文件路径不一致,则会将旧文件剪切到新的文件路径中再重命名
//        oldFile.renameTo(newFile);
//        
//        //不会将文件放到回收站中,而是直接删除
//        File del = new File("D:\\monkey\\java.txt");
//        //删除
//        System.out.println(del.delete());
        
         //如果文件夹下有其他文件,则不会删除
        File del1 = new File("D:\\monkey");
        System.out.println(del1.delete());
    }
    
}

注意:

  • 重命名时,如果两个路径不相同,则会将被修改的文件进行剪切,然后再重命名放到新的路径里面
  • 删除时不会放入回收站,并且要确保被删除的文件里面没有其他文件才可以进行删除

File类中关于判断的方法

  • public boolean isDirectory():判断是否是目录
  • public boolean isFile():判断是否是文件
  • public boolean exists():判断是否存在
  • public boolean isHidden():判断是否隐藏
package com.sutaoyu.file;

import java.io.File;

public class test_3 {
    public static void main(String[] args) {
        //判断是否是文件夹
        File file1 = new File("D:\\monkey");
        System.out.println(file1.isDirectory());
        //判断是否是文件
        System.out.println(file1.isFile());
        
        //判断是否是文件夹
        File file2 = new File("D:\\new.txt");
        System.out.println(file2.isDirectory());
        //判断是否是文件
        System.out.println(file2.isFile());
        //判断文件是否存在
        System.out.println(file2.exists());
        
        //判断文件是否隐藏
        File file3 = new File("D:\\hidden");
        System.out.println(file3.isHidden());
    }
}

File类其他常用方法

  • public String getAbsolutePath():获取绝对路径
  • public long length():获取文件大小。字节数
  • public long lastModified():获取最后一次的修改时间,毫秒值
  • public String[] list():获取文件路径下所有文件名(同一层级目录)
  • public File[] listFiles():获取文件路径下所有File对象数组
package com.sutaoyu.file;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test_4 {
    public static void main(String[] args) {
        File file1 = new File("1024.txt");
        //查看绝对路径
        System.out.println(file1.getAbsolutePath());
        //文件的大小,单位是字节
        System.out.println(file1.length());
        //最后修改时间
        Date date = new Date(file1.lastModified());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(sdf.format(date));

        File file2 = new File("F:\\monkey1024\\01-JavaSE\\代码\\code\\chapter-08");
        //获取目录下的同级文件或文件夹的名称
        String[] nameArray = file2.list();
        for(String name : nameArray){
            System.out.println(name);
        }

        //获取目录下的同级文件或文件夹的File对象
        File[] fileArray = file2.listFiles();
        //打印出文件的绝对路径
        for(File file : fileArray){
            System.out.println(file);
        }
    }
}

练习:

统计项目根目录下以.txt结尾的文件数量,并将文件名打印出来

分析:

获取项目根目录下的文件名
对文件名进行判断是否是以.txt结尾

代码实现:

package com.sutaoyu.file;

import java.io.File;

public class test_5 {
    public static void main(String[] args) {
        File file = new File("D:\\java\\Eclipse\\chapter-08\\files\\");
        File[] fileArray = file.listFiles();
        
        //统计出现次数
        int count = 0;
        for(File name : fileArray) {
            String s = name.toString();
            //判断是否是以.txt文件结尾
            if(s.endsWith(".txt")) {
                if(name.isFile()) {
                    count++;
                    System.out.println(count);
                }
            }
        }
        System.out.println("以.txt文件结尾的数量是" + count + "个");
    }
}

 

posted @ 2018-12-19 19:08  追风的小蚂蚁  阅读(189)  评论(0编辑  收藏  举报