Java novice learning 2021-2-18 record the daily learning content (if there is any infringement, please contact to delete!!!)

2021-2-18

1. File brief description

Insert picture description here

2. File overview and structure

Insert picture description here

package com.wc.file;

import java.io.File;

/**
 * @author wc
 * @Date: 2021/02/18/15:46
 */
public class MyFile {
    
    
    public static void main(String[] args) {
    
    
        //method1();
        //method2();
        //method3();
    }

    private static void method3() {
    
    
        File file1=new File("D:\\干休所");
        String path2="a.txt";
        File file = new File(file1,path2);
        System.out.println(file);
    }

    private static void method2() {
    
    
        //父路径和子路径进行拼接
        String path1="D:\\干休所";
        String path2="a.txt";
        File file=new File(path1,path2);
        System.out.println(file);
    }
    
    private static void method1() {
    
    
        //为什么要将字符串表示的路径变成file对象
        //为了使用file类中的方法(增,删)
        //将给定的路径名字字符串转为抽象的路径名来创建新的file
        String path="D:\\干休所\\a.txt";
        File file=new File(path);
        System.out.println(file);
    }
}

3. The creation function of the File class (createNewfile, mkdirs)

Insert picture description here
Insert picture description here
Insert picture description here
Insert picture description here

4. File judgment and acquisition function (isDirectory, isfile, exists, getName)

Insert picture description here
Insert picture description here

5. File class advanced access function (listFiles)

Insert picture description here

6.File practice

Insert picture description here

package com.wc.file;

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

/**
 * @author wc
 * @Date: 2021/02/18/17:13
 */
public class MyFile2 {
    
    
    public static void main(String[] args) throws IOException {
    
    

//        File file=new File("Stream\\aaa\\a.txt");
//        file.createNewFile();
        /* file.createNewFile();方法创建文件所在的文件夹必须存在,
        而此时aaa文件夹不存在*/

        File file = new File("Stream\\aaa");
        //如果文件夹不存在,则创建文件夹
        if (!file.exists()){
    
    
            file.mkdirs();
        }
        File file1 = new File(file,"a.txt");
        file1.createNewFile();
    }
}

Insert picture description here

package com.wc.file;

import java.io.File;

/**
 * @author wc
 * @Date: 2021/02/18/17:31
 */
public class MyFile3 {
    
    
    public static void main(String[] args) {
    
    
        //删除一个多层文件夹,delete方法
        //只能删除文件和空文件夹
        //如果要删除一个有内容的文件夹
        //先删掉这个文件夹的所有内容
        //最后再删掉这个文件夹
        File src=new File("D:\\src");
        deleteDir(src);
    }
    private static void deleteDir(File src) {
    
    
        //先删掉文件夹的所有内容
        //获取所有文件夹
        File[] files = src.listFiles();
        //遍历
        for (File file : files) {
    
    
            if (file.isFile()){
    
    
                file.delete();
            }else {
    
    
                //参数一定要是src文件夹的file对象,递归file,防止里面有文件夹
                deleteDir(file);
            }
        }
        //最后删除这个文件夹
        src.delete();
    }
}

Insert picture description here

package com.wc.file;

import java.io.File;
import java.util.HashMap;

/**
 * @author wc
 * @Date: 2021/02/19/9:24
 */
public class MyFile4 {
    
    
    public static void main(String[] args) {
    
    
        //统计一个文件夹中,每种文件出现的次数
        File file = new File("Stream");
        HashMap<String, Integer> hm = new HashMap<>();
        getFileCount(hm, file);
        System.out.println(hm);
    }

    private static void getFileCount(HashMap<String, Integer> hm, File file) {
    
    
        //获取所有文件
        File[] files = file.listFiles();
        for (File f : files) {
    
    
            //如果是文件,首先获取文件的后缀名
            if (f.isFile()){
    
    
                String fileName = f.getName();
                String[] fileNameArr = fileName.split("\\.");
                if (fileNameArr.length==2){
    
    
                    //通过.分割,获取文件的后缀
                    String fileEndName = fileNameArr[1];
                    //判断一下当前文件在不在
                    if (hm.containsKey(fileEndName)){
    
    
                        Integer count = hm.get(fileEndName);
                        count++;
                        hm.put(fileEndName,count);
                    }else {
    
    
                        //没有出现的文件名设置次数为1
                        hm.put(fileEndName,1);
                    }
                }
            }else {
    
    
                //文件夹,递归
                getFileCount(hm, f);
            }
        }
    }
}

Guess you like

Origin blog.csdn.net/weixin_49221590/article/details/113847804