File类的使用。

在Java中,File是用来操作文件夹和文件的。

1、先来说说计算机中文件夹和文件的区别。

文件夹:

普通计算机文件夹是用来协助人们管理计算机文件的,每一个文件夹对应一块磁盘空间,它提供了指向对应空间的地址,它没有扩展名,也就不像文件的格式用扩展名来标识。是一种商业或事业等活动过程中为了纸质文件的存储、保护和规范管理而使用到的工具。

举例: 在计算机中,说文件夹"abc",其实不准确,一般都会讲"C盘中的有个abc文件夹"。 即,每一个文件夹会对应一块磁盘空间。

计算机文件:
计算机文件属于文件的一种,与普通文件载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本文档、图片、程序等等。文件通常具有三个字母的文件扩展名,用于指定文件类型(例如,图片文件常常以JPEG格式保存并且文件扩展名为.jpg)
举例:电脑D盘上有个图片文件1.jpg。


小结:
计算机文件是存储在计算机硬盘上的。
文件夹是用来管理计算机文件的。

2、Java如何创建文件夹和文件。

2.1 创建文件

    /**
     * 创建文件
     *
     * @param pathName 指定文件路径。
     * @return true:创建文件成功。 false:创建文件失败。
     */
    public static boolean createFile(String pathName) {
        /*
            指定路径,创建file对象。文件夹或者文件可以不存在。
            PS:
                1)路径可能是个文件夹,可能是个文件。
                2)文件创建的前提:
                    要么在磁盘根目录。
                    要么在已存在的文件夹中创建。如果文件夹不存在,会抛异常。
         */
        File file = new File(pathName);
        boolean newFile = false;
        try {
            newFile = file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return newFile;
    }

测试

    /**
     * 创建文件
     */
    @Test
    public void testCreateFile() throws IOException {
        boolean file1 = createFile("D:/yuank.jpg");
//        boolean file1 = createFile("D:/a/yuank.jpg");//如果a文件夹不存在,会抛异常
        System.out.println(file1);
    }

2.2 创建临时文件(可用于图片上传功能,图片文件重命名。)

    /**
     * 创建临时文件(每次都会不同) yuank27917289910742955258.jpg
     *
     * @param prefix    文件前缀
     * @param suffix    文件后缀
     * @param directory 文件目录。 如果为null,路径默认为电脑的临时目录:System.getProperty("java.io.tmpdir") 
     * @return
     */
    public static File createTempFile(String prefix, String suffix, File directory) {

        try {
            return File.createTempFile(prefix, suffix, directory);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

测试

    /**
     * 创建临时文件
     */
    @Test
    public void testCreateTempFile() {
        File file = createTempFile("yuank", ".jpg", new File("D:/1"));
        String path = null;
        if (file != null) {
            path = file.getPath();
        }
        System.out.println("path = " + path);
    }

2.2 创建文件夹

创建一级目录

    /**
     * 创建一级目录
     *
     * @param pathName 路径名称
     * @return
     */
    public static boolean createOneDirectory(String pathName) {
        File file = new File(pathName);
        boolean mkdir = false;
        if (!file.exists()) {
            mkdir = file.mkdir();
        }
        return mkdir;
    }

测试

    //创建一级目录
    @Test
    public void testCreateDirectory() {
        boolean oneDirectory = createOneDirectory("d:/a/");
        System.out.println("oneDirectory = " + oneDirectory);//true,创建成功;false,目录已存在,创建失败。
    }

创建多级目录

    /**
     * 创建多级目录
     *
     * @param pathName 路径名称
     * @return
     */
    public static boolean createMoreDirectory(String pathName) {
        File file = new File(pathName);
        boolean mkdir = false;
        if (!file.exists()) {
            mkdir = file.mkdirs();
        }
        return mkdir;
    }

测试

    //创建多级目录
    @Test
    public void testCreateMoreDirectory() {
        boolean moreDirectory = createMoreDirectory("d:/a/b/c");
        System.out.println("moreDirectory = " + moreDirectory);//true,创建成功;false,目录已存在,创建失败。
    }

3、综合练习

需求:在d:/a/b/c 目录下创建1.jpg文件
        //1. 先创建目录
        String directoryPath = "d:/a/b/c/";//目录路径
        createMoreDirectory(directoryPath);
        //2. 在该目录下创建文件
        String fileName = "1.jpg";//文件名称
        String filePath = directoryPath + fileName;//文件路径
        createFile(filePath);

猜你喜欢

转载自www.cnblogs.com/yuanke-blog/p/11959069.html