java文件流的的基本操作方法

6 篇文章 0 订阅
6 篇文章 0 订阅

createNewFile():

/*
 * 在当前目录下创建新建文件:test.txt
 *
 */
        
        File file=new File("./test.txt");
        /**
         * boolean exists()
         * 判断当前File表示的路径下是否已经存在对应的文件或目录
         */
        if(!file.exists()) {
            file.createNewFile();
            System.out.println("文件已经创建");
        }else {
            System.out.println("文件已经存在");
        }

delete()方法删除文件夹:

File dir=new File("demo");
    if(dir.exists()) {
        /*
         * delete删除目录要求目录必须是空目录
         */
        dir.delete();
        System.out.println("目录已经删除");
    }else {
        System.out.println("目录不存在");
    }

 

delete()方法删除文件

/*
 * 将当前目录下test.txt文件删除
 * 相对目录中./可以不写默认就是当前目录
 */
        File file=new File("test.txt");
        if(file.exists()) {
            file.delete();
            System.out.println("文件已删除");
        }else {
            System.out.println("文件不存在");
        }

 

 

删除文件及其子文件

public static void delete(File file) {
    if(file.isDirectory()) {
        //首先清空该目录
        //获取目录中所有子项
        File[] subs=file.listFiles();
        //遍例逐个子项逐个删除
    
        for(int i=0;i<subs.length;i++) {
            File sub=subs[i];
            /*
             * 递归调用
             * 一个方法内部调用自己本身的操作称为递归调用
             * 使用递归调用要注意:
             * 1.递归次数尽量少,因为递归开销大,效率差
             * 2.递归操作必须被一个分支语句控制,不能必定执行,否则就是死循环,并最终
             * 造成内存溢出导致程序瘫痪
             */
            delete(sub);
        }
        
    }
    file.delete(); 
}

/**
 * java.io.file
 * file的每一个实例用于表示一个文件或目录。
 * 使用file可以
 * 1.访问其表示文件的目录或者目录属性(名字大小)
 * 2.操作文件或, 目录(创建删除)
 * 3.访问一个目录的子项内容
 * 不能访问文件数据
 * @author soft01
 *
 */
public class FileDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
/*
 * File创建时需要指定路径
 * 路径通常相对路径,绝对路径无法做到
 * 平台无关性window和linux路径写法不同
 * 相对路径中的./为当前目录,具体是哪里要看
 * 当前程序运行环境而定,在eclipse中运行时指的是当前程序所在的项目目录
 */
        File file=new File("./demo.txt");
        String name=file.getName();
        System.out.println(name);
        long length=file.length();
        System.out.println(length+"字节");
        boolean cr=file.canRead();
        boolean cw=file.canWrite();
        System.out.println(cr);
        System.out.println(cw);
        
        boolean ih=file.isHidden();
        System.out.println("隐藏文件:"+ih);
        

    }

 

 

isDirectory()和isFile()方法:

 

File dir=new File(".");
/*
 *boolean isFile()
 *判断file表示的是否是文件
 * boolean isDirectory()
 * 判断file表示的是否是目录
 * dir.isFile();
dir.isDirectory();
 *
 */
 if(dir.isDirectory()) {
     /*
      * File[] listFiles()
      * 获取当前目录下所有的子项,以一个File数组形式返回,每个元素表示其中一个子项
      */
     File[] subs=dir.listFiles();
     System.out.println(subs.length);
     for(int i=0;i<subs.length;i++) {
         System.out.println(subs[i].getName());
     }
 }

    }

 

/**
 * 重载listFiles方法
 * Files[] listFiles(FileFilter filter)
 * 该方法在获取该目录中子项的过程重利用参数给定的过滤器
 * 将满足其要求的子项返回,其余忽略
 * @author soft01
 *
 */
public class ListFilesDemo2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
File dir=new File(".");
if(dir.isDirectory()) {
    FileFilter filter=new FileFilter() {

        @Override
        public boolean accept(File file) {
            String name=file.getName();
            System.out.println("正在过滤:"+name);
            return name.startsWith(".");
        }
        
    };
    File[] subs=dir.listFiles(filter);
    System.out.println(subs.length);
    for(int i=0;i<subs.length;i++) {
        System.out.println(subs[i].getName());
    }
}
    }

}

 

mkdir()方法:

/*
 * 当前目录下新建一个demo目录
 */
        File dir=new File("demo");
        if(!dir.exists()) {
            dir.mkdir();
            System.out.println("文件夹已经创建");
        }else {
            System.out.println("目录已经存在");
        }

mkdirs()方法:

/*
 * 在当前目录下新建目录:a/b/c/d/e/f目录
 *
 */
        File dir=new File("a/b/c/d/e/f");
        if(!dir.exists()) {
            /*
             * 该方法会将不存在的父目录一同创建出来,而mkdir方法若父目录不存在
             * 则创建失败
             *
             */
            dir.mkdirs();
            System.out.println("目录已经创建");
        }else {
            System.out.println("目录已经存在");
        }
       

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭九钦vlog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值