File クラスの使用 - Java


ファイルの使用方法

File はファイルを操作するために使用されます。IO ストリームはファイルの読み取りと書き込みを処理し、ファイルを追加または削除する機能はありません。

ファイルを作成する 3 つの方法

1. ファイルパスを直接指定します。(これは絶対パスを指します。)

    private static void demo01() {
    
    
//        通过给定的路径名确定文件
        String path = "E:\\itheima\\a.txt";
//        使用File类中的方法
        File file = new File(path);

        System.out.println(file.getName());
        System.out.println(file.isFile());
    }

2. 親のパスとファイル名を使用します。

private static void demo02() throws IOException {
    
    
    File f = new File("a.txt");
    if (!f.exists()) {
    
    
        f.createNewFile();
    }
    String path1 = "E:\\itheima";
    String path2 = "a.txt";
    File file = new File(path1, path2);
    System.out.println(file.getAbsolutePath());
}

3. 親ファイル オブジェクトとファイル名を使用します。

private static void demo03() {
    
    
    File file = new File("E:\\itheima");
    String name = "a.txt";
    File file2 = new File(file,name);
    System.out.println(file2.getAbsolutePath());
}

ファイルの作成方法

空のファイルを作成する

createNewFile()

public boolean createNewFile();
创建一个新的空的文件。

フォルダーを作る

f.mkdir(); //创建一个单级文件夹
f.mkdirs(); //创建一个多级文件夹。

ファイルの削除

File file = new File("E:\\itheima\\a.txt");
file.delete();
// public boolean delete(); 删除文件。

ファイルクラス判定・取得機能

public boolean isDirectory() //测试此抽象路径名表示的file是否为目录
public boolean isFile() //测试该File是否为文件
public boolean exists() //测试该file是否存在
public String getName() //返回该路径名表示的文件或目录的名称。

ファイルクラスの高度な取得

listfiles();
File[] files = file.listFiles();

注意事项:
当调用者不存在时,返回null
当调用者是一个文件时,返回null
当调用者是一个空文件夹时,返回一个长度为0的数组。
当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。
当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件。
当调用者是一个需要权限才能进入的文件夹时,返回null
演習 1. 現在のフォルダー aaa フォルダーの下に .txt ファイルを作成します。
private static void demo07() throws IOException {
    
    
    File file1 = new File("aaa");
    file1.mkdir();
    File file2 = new File(file1,"a.txt");
    boolean flag = file2.createNewFile();
    System.out.println(flag);
}
演習 2. 複数レベルのフォルダーを削除する
    private static void deleteDir(File src) {
    
    
//        从该源文件中找到所有的子文件,
        //        首先进入该源文件夹,然后从该文件夹中查看所有的子文件,属于文件的直接删除,属于文件夹的递归,然后是文件的再删除。
//        最后删除src源文件。
        File[] files = src.listFiles();
        for (File file : files) {
    
    
            if (file.isFile()) {
    
    
                file.delete();
            } else if (file.isDirectory()) {
    
    
                deleteDir(file);
            }
        }
        src.delete();
    }
演習 3、ソース フォルダー内のさまざまな種類のファイルの数を数えます。
 private static void demo09() {
    
    
        File file = new File("E:\\BiliDown");
        HashMap<String, Integer> map = new HashMap<>();
        getCount(map, file);
        System.out.println(map);
    }

    //    计算各个类型的文件的数量。
    private static void getCount(HashMap<String, Integer> map, File file) {
    
    
//        首先进入该文件,获取所有子文件。
        File[] files = file.listFiles();
        for (File f : files) {
    
    
            if (f.isFile()) {
    
    
//                如果是文件的话
                String filename = f.getName();
                String[] filename_arr = filename.split("\\.");
                int length = filename_arr.length;
                String last_name = filename_arr[length - 1];
                boolean flag = map.containsKey(last_name);
                if (flag == true) {
    
    
//                        如果该后缀文件已经存在。
                    Integer number = map.get(last_name);
                    number++;
                    map.put(last_name, number);
                } else if (flag == false) {
    
    
//                        如果没有存在
                    map.put(last_name, 1);
                }
            } else if (f.isDirectory()) {
    
    
//                如果是文件夹的话,继续递归进入
                getCount(map, f);
            }
        }
    }

おすすめ

転載: blog.csdn.net/qq_45022687/article/details/122592112
おすすめ