File初學

package FileTest;

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


/**
 * 構造方法:
 * File(File parent, String child)
 * 从父抽象路径名和子路径名字符串创建新的 File实例。
 * File(String pathname)
 * 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
 * File(String parent, String child)
 * 从父路径名字符串和子路径名字符串创建新的 File实例。
 * File(URI uri)
 * 通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。
 *
 * 常用方法:
 *Path toPath()
 * 返回从此抽象路径构造的java.nio.file.Path对象。
 * String toString()
 * 返回此抽象路径名的路径名字符串。
 * URI toURI()
 * 构造一个表示此抽象路径名的 file: URI。
 * boolean isAbsolute()
 * 测试这个抽象路径名是否是绝对的。
 * boolean isDirectory()
 * 测试此抽象路径名表示的文件是否为目录。
 * boolean isFile()
 * 测试此抽象路径名表示的文件是否为普通文件。
 * boolean exists()
 * 测试此抽象路径名表示的文件或目录是否存在。
 * File getAbsoluteFile()
 * 返回此抽象路径名的绝对形式。
 * String getAbsolutePath()
 * 返回此抽象路径名的绝对路径名字符串。
 * boolean createNewFile()
 * 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
 * boolean mkdir()
 * 创建由此抽象路径名命名的目录。
 * boolean mkdirs()
 * 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
 * long length()
 * 返回由此抽象路径名表示的文件的长度。
 * String[] list()
 * 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
 * String[] list(FilenameFilter filter)
 * 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。
 *
 *
 */
public class FileTest01 {
    public static void main(String[] args) {
        File file1 = new File("C:\\Users\\ASUS\\Desktop\\新建文件夹\\file");
        File file2 = new File("C:\\Users\\ASUS\\Desktop\\新建文件夹\\file\\1.txt");
        File file3 = new File(file1,"2.txt");
        boolean mkdir = file1.mkdirs();
        System.out.println(mkdir);
        if(file1.exists()){
            try {
                if(!file2.exists()){
                    file2.createNewFile();
                }
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("創建新文件失敗");
            }
        }else {
            file1.mkdirs();
            try {
                file2.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("創建新文件失敗");
            }
        }
        try {
            file3.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(file1.isDirectory());
        System.out.println(file2.isFile());
        System.out.println(file3.list());

    }
}

**文件的遍歷**

在这里插入图片描述

package FileTest;

import java.io.File;
import java.io.FileFilter;

/**
 * 遍歷之前寫好的文件夾結構,通過三種方式
 * 1.遍歷實現
 * 2.用fileFilter,實現
 * 3.用lambda表達式實現file filter
 */
public class FileTest02 {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\ASUS\\Desktop\\新建文件夹");
        FileTest02 fileTest02 = new FileTest02();
//        fileTest02.show(file);
        fileTest02.show3(file);
    }
    //方法一實現
    public void show(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles();
            for (File f:files) {
                if(f.isFile()){
                    if(f.getName().endsWith(".java")){
                        System.out.println("找到Java文件"+f.getName());
                    }else
                        System.out.println(f.getName());

                }
                if(f.isDirectory()){
                    System.out.println("進入"+f.getName()+"  文件夾");
                    show(f);
                }

            }
        }
    }
    //方法二實現
    public void show2(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles(new fileFilterTest());
            for (File f:files) {
                if(f.isFile()){
                    System.out.println("文件名為"+f.getName());

                }else
                    show2(f);

            }
        }
    }
    //方法三實現
    public void show3(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles((File f)->{
                return file.getName().endsWith(".java")||file.isDirectory();
            });
            for (File f:files) {
                if(f.isFile()){
                    System.out.println("文件名為"+f.getName());

                }else
                    show3(f);

            }
        }
    }
}
class fileFilterTest implements FileFilter{

    @Override
    public boolean accept(File file) {
        return file.getName().endsWith(".java")||file.isDirectory();
    }
}
发布了16 篇原创文章 · 获赞 2 · 访问量 282

猜你喜欢

转载自blog.csdn.net/qq_43147121/article/details/104100550
今日推荐