Java中File类创建文件、文件夹、删除文件的方法代码

这篇博客详细介绍了在Java中如何使用File类创建新文件、创建文件夹、删除文件,并重点讨论了如何处理createNewFile()方法可能抛出的IOException。博主列举了四种方法创建文件,分析了创建失败的原因,如路径不存在会导致IO异常。此外,还展示了删除文件的用法,强调了删除操作是直接从硬盘上删除,不会经过回收站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 创建普通方法的时候,由于createNewFile()源码中抛出了io异常,我们就要解决这个异常

public boolean createNewFile() throws IOException {
      SecurityManager security = System.getSecurityManager();
      if (security != null) security.checkWrite(path);
      if (isInvalid()) {
            throw new IOException("Invalid file path");
         }
             return fs.createFileExclusively(path);
}

解决io异常的两个方法:

1、自己throws出去

2、try catch 一下

看文件/文件夹时是否是文件夹时候,不要看名字,要看文件/文件夹属性

例如

haha.txt是文件夹,而不是文本文档

=====================

Java中File类创建文件、文件夹、删除文件的方法代码

package com.baidu;

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

public class FileCreatAndDelete {
    /*
        boolean delete​() 删除由此抽象路径名表示的文件或目录。
        boolean mkdir​() 创建由此抽象路径名命名的目录。
        boolean mkdirs​() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
        boolean createNewFile​() 当且仅当具有该名称的文件尚不存在时,创建一个由该抽象路径名命名的新的空文件。

     */
    public static void main(String[] args) throws IOException {
        //show01();
        //show02();
        //show03();
        //show04();
        show05();
    }


    /*
       boolean createNewFile​() 当且仅当具有该名称的文件尚不存在时,创建一个由该抽象路径名命名的新的空文件。
       创建文件的路径和名称在构造方法中给出(构造方法的参数)
       返回值:布尔值
                true:文件不存在时,可以创建文件,返回true
                false:文件已经存在时,不会创建,返回false
        注意:
            1、此方法只能创建文件,不能创建文件夹
            2、创建文件的路径必须存在,否则会抛出异常

     */
    /*
        show01()方法介绍的是绝对路径创建文件
     */
    private static void show01() throws IOException {

        /*
            源码:
                public boolean createNewFile() throws IOException {
                    SecurityManager security = System.getSecurityManager();
                    if (security != null) security.checkWrite(path);
                    if (isInvalid()) {
                     throw new IOException("Invalid file path");
                  }
                     return fs.createFileExclusively(path);
                     }
         */

        /*
            public boolean createNewFile() throws IOException
            createNewFile声明抛出了IOException,就必须处理这个异常
            解决的方法:
                1、throws
                2、try catch
         */
        File f1 = new File("F:\\acan\\IdeaProjects\\hadoopdaima\\3.txt");
        if (!(f1.exists())){
            boolean newFile1 = f1.createNewFile();
            System.out.println(newFile1);
            System.out.println("创建成功!");
        }else {
            System.out.println("文件已经存在!");
        }
    }

    /*
        show02方法介绍相对路径新建文件
     */
    private static void show02() throws IOException {
        File f2 = new File("4.txt");
        if (!(f2.exists())){
            boolean newFile2 = f2.createNewFile();
            System.out.println(newFile2);
            System.out.println("创建成功");
        }else {
            System.out.println("文件已经存在!");
        }
    }
    /*
        路径不存在会抛出io异常

     */
    private static void show03() throws IOException {
        File f3 = new File("boluochuixue\\8.txt");
        if (!(f3.exists())){
            boolean newFile3 = f3.createNewFile();
            System.out.println(newFile3);

        }else {
            System.out.println("此文件已经存在");
        }

    }
    /*
            抛出的io异常在这里
            Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
	at java.io.WinNTFileSystem.createFileExclusively(Native Method)
	at java.io.File.createNewFile(File.java:1012)
	at com.baidu.FileCreatAndDelete.show03(FileCreatAndDelete.java:86)
	at com.baidu.FileCreatAndDelete.main(FileCreatAndDelete.java:17)

     */

    /*
        boolean mkdir​() 创建由此抽象路径名命名的目录。
        boolean mkdirs​() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
     */
    /*
        和linux有点联系,在linux中mkdir是创建单级空文件夹
        mkdir -p是创建多级文件夹
        mkdir和mkdirs也是一样的原理
        mkdirs既可以创建单级文件夹又可以创建多级文件夹
        需要注意的有:
        创建文件夹的路径和名称在构造方法中给出(构造方法参数)
            返回值:布尔型
            true:文件夹不存在,创建文件夹,返回true
            false:文件夹存在,不会创建,返回false;
            构造方法中给出的路径不存在返回false
     */
    public static void show04(){
        File f1 = new File("F:\\develop\\boluochuixue");
        if (!(f1.exists())){
            boolean mkdir1 = f1.mkdir();
            System.out.println(mkdir1);
            System.out.println("文件夹"+f1.getName()+"已经创建成功!");
        }else {
            System.out.println("文件夹以存在");
        }


        File f2 = new File("F:\\develop\\shangguanziyi\\loveyou");
        if (!(f2.exists())){
            boolean mkdirs1 = f2.mkdirs();
            System.out.println(mkdirs1);
            System.out.println("多级空文件夹创建成功!");

        }else {
            System.out.println("多级空文件夹已经存在");
        }

        File f3 = new File("F:\\develop\\haha.txt");//haha.txt也可以是文件夹,看文件不要看名称,要看类型
        if (!(f3.exists())){
            boolean mkdirs2 = f3.mkdirs();
            System.out.println(mkdirs2);//看类型,是一个文件
            System.out.println("多级空文件夹创建成功!");

        }else{
            System.out.println("多级空文件夹创建失败(已经存在错误)");
        }
    }


    /*
        boolean delete​() 删除由此抽象路径名表示的文件或目录。
        此方法可以删除文件或者是文件夹
        返回值:布尔值
            true:文件/文件夹删除成功,返回true
            fasle:文件夹有内容,不会删除返回false
            构造方法中的路径不存在返回fasle
            注意:
                delete直接在硬盘上删除文件或文件夹,不走回收站


     */
    private static void show05(){
        File f1 = new File("F:\\develop\\boluochuixue");
        if (f1.exists()){
            boolean delete1 = f1.delete();
            System.out.println(delete1);
            System.out.println("文件或者文件夹删除成功!");
        }else {
            System.out.println("此文件或者文件夹不存在!");
        }
    }



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值