原 自学JVAVA---(44)--(内功心法【42】)文件

文件
【小城贝尔】
文件抽象来表示,并非本身是事实。
检测是否文件夹,先定存在勿抓瞎。
获得文件的路径,绝对相对不同性。
文件创建磁盘累,系统保留忽后缀。
还有创建文件夹,是否有蛇映彩霞。
子类元素一把抓,文件可得名散花。

文件常用方法
在这里插入图片描述

public class FileMethods {
    public static void main(String[] args)throws IOException {
        //文件类常用的方法
        String separator = File.separator;
        System.out.println("separator :文件分隔符 "+separator);//separator :文件分隔符 \
        //Constractor
        File file = new File("src"+File.separator+"bgd.jpg");


        //exists
        Boolean exists = file.exists();
        System.out.println("exists : "+exists);
        //isFile or isDirecotr
        Boolean isFile = file.isFile();
        Boolean isDirectory = file.isDirectory();


        System.out.println("isFile : "+isFile +  "     isDirectory: "+isDirectory);
        //getPath  getAbsolutePath getName getParent
        String getPath = file.getPath();//src\bgd.jpg
        String getAbsolutePath = file.getAbsolutePath();
        String getName = file.getName();// getName bgd.jpg
        String getParent = file.getParent();//getParent : src
        File getParentFile = file.getParentFile();//getParentFile : src
        System.out.println("getPath :"+ getPath +"   getAbsolutePath : "+getAbsolutePath +"   getName "+getName);
        System.out.println("getParent : "+getParent);
        System.out.println("getParentFile : "+getParentFile);


        //length
        long length = file.length();
        System.out.println("length : "+length);

        //createNewFile 创建和后缀无关
        File file1 = new File("src/demo");
        boolean isCreate = file1.createNewFile();//如果文件不存在就创建 存在就不创建
        System.out.println("isCreate : "+isCreate);
        //con是系统关键字不呢创建
        File file2 = new File("src/con");
        boolean isCreate2 = file2.createNewFile();//isCreate2 : false
        System.out.println("isCreate2 : "+isCreate2);


        //mkdir mkdirs
        File mkDir = new File("src/mkes/dirs");
        boolean mkdir = mkDir.mkdir();// mkdir : false mkdir 要保证父级路径存在才可以创建成功
        boolean mkdirs = mkDir.mkdirs();// mkdirs :true 如果路径不存在都会创建
        System.out.println("mkdir : "+mkdir +  "     mkdirs :"+mkdirs);

        //list FileList
        File lists  = new File("src");
        String[] names = lists.list();//获得该文件夹下的所有文件名称
        File fils[] = lists.listFiles();//获得该文件下所有的子文件
        System.out.println("names : "+ Arrays.toString(names));
        System.out.println("fils  :  "+Arrays.toString(fils));
    }
}

文件类封装应用

public class FileUtilsDemo {
    private  long size ;
    private  int fileSize;
    private  int dirSize;
    //遍历文件夹
    public  void fileTraversal(File file,int deep){
        if(file.exists()){//判断文件是否存在

            //打印层级
            for (int i = 0; i < deep ; i ++){
                System.out.print("-");
            }

            //输出文件名字
             System.out.println(file.getName());
            //如果是文件获得所有的子文件
             if(file.isDirectory()){
                for(File fileSon :file.listFiles()){
                    fileTraversal(fileSon,deep+1);
                }
            }
        }
    }
    //文件大小
    public long fileSize(File file) throws  FileNotFoundException{
        if(!file.exists()){
            throw  new FileNotFoundException("您所传递的文件不存在");
        }
        if(file.isFile()){
            size += file.length();
        }else if(file.isDirectory()){
            File[] filse = file.listFiles();
            for (File fileSon: filse) {
                fileSize(fileSon);
            }
        }

        return  size;
    }
    //文件夹 以及文件 个数
    public int[] fileNumber(File file)throws  FileNotFoundException{
        if(!file.exists()){
            throw  new FileNotFoundException("您所传递的文件不存在");
        }
        if(file.isFile()){
            fileSize++;
        }else  if(file.isDirectory()){
            dirSize++;
            File[] files = file.listFiles();
            for(File fileSon : files){
               fileNumber(fileSon);
            }
        }

        int size [] = {fileSize ,dirSize};
        return  size;
    }
    //删除文件
    public void deleteFile(File file)throws  FileNotFoundException{
        if(!file.exists()){
            throw  new FileNotFoundException("您所传递的文件不存在");
        }

        if (file.isFile()){
            System.out.println("已删除文件 : "+ file.getName());
            file.delete();
        }else  if(file.isDirectory()){
            File[] files = file.listFiles();
            for(File fileSon :files){
                deleteFile(fileSon);
            }
        }
        System.out.println("已删除文件夹 : "+ file.getName());
        file.delete();
    }

}
class TestFileUtils{
    public static void main(String[] args) throws IOException {
        FileUtilsDemo ff = new FileUtilsDemo();
        //test travesal
        ff.fileTraversal(new File("E:\\ERP资料"),0);

        //test file 大小
        long size = ff.fileSize(new File("E:\\ERP资料"));//size : 818319576
        System.out.println("size : "+size);

        //test 文件文件夹个数
        int[] filNumber = ff.fileNumber(new File("E:\\ERP资料"));
        System.out.println(Arrays.toString(filNumber));

        // test delete file
        ff.deleteFile(new File("E:\\picture\\front"));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值