路径file相关

file可以表示硬盘上的一个文件或目录(本质上保存的是一个抽象路径)
file可以:
        1.访问其表示的文件或目录的属性
        2.创建删除文件或空目录
        3.访问一个目录中的子项

file不可以访问文件数据

      绝对路径的优点是清晰明了,但是缺点是路径写死了,跨平台不好运行
       相对路径的优点是有良好的跨平台性
      “./”是当前目录,在idea中当前目录指的是当前程序所在的项目目录

File file1 =new File("C:/Users/tedu/IdeaProjects/JSD2206_SE");

File file= new File("./demo.txt"); //  当前目录./

        获取file表示的文件或目录的名字

String name=file.getName();
System.out.println(name);

        获取当前file表示的文件的大小(单位是字节)

  long len=file.length();
        System.out.println("大小"+len+"个字节");
        boolean cw =file.canWrite(); //是否可写
        boolean cr =file.canRead(); //是否可读
        System.out.println("是否可写"+cw);
        System.out.println("是否可写"+cr);

在目录下新建100个文件,命名为:test1.txt-----test100.txt

for (int i=1;i<=100;i++){
            File file =new File("./test"+i+".txt");
            //判断该位置下是否已经存在了这个文件或者目录
        /*
        file.exists()判断当前file表示的目录或者文件是否存在,存在则返回true
         */
            if(file.exists()) {
                System.out.println("文件已被创建");
            }else{
                //将该文件创建出来
            /*
            .createNewFile()方法的作用是将当前file表示的文件在当前目录下创建出来
             */
                final boolean newFile = file.createNewFile();
                System.out.println("文件已创建");
            }
        }
        for (int i=1;i<=100;i++){

            File file =new File("test"+i+".txt");
            if(file.exists()){
            /*
            file.delete();作用就是将当前file表示的文件删除
             */
                file.delete();
                System.out.println("该文件已删除!");
            }else{
                System.out.println("该文件不存在!");
            }
            }

获取./src/file目录中所有名字以D开始的文件

File file =new File("./src/file");
        if(file.isDirectory()){
            FileFilter filter =new FileFilter() {
                @Override
                public boolean accept(File file) {
                    //只要file表示的文件的名字的是以D开始的则接受
                    String name =file.getName();
                    return name.startsWith("D"); //以D开头,判断以括号内元素开头的元素的方法startsWith("D")
                }
            };
            File[] subs =file.listFiles(filter);
            for(int i=0;i<subs.length;i++){
                System.out.println(subs[i].getName());

            }
        }

获取一个目录中的所有子项


        获取当前目录下的所有子项
        File dir =new File(".");
        boolean isFile();
        判断当前dir表示的是否为一个文件

       boolean isDirectory();
        判断当前dir表示的是否为一个目录

 if(dir.isDirectory()){ //判断当前dir表示的是否为一个目录
         
            dir.listFiles(); 将当前file对象表示的目录中的所有子项返回
             
            File[] subs =dir.listFiles();
            System.out.println("当前目录下共:"+subs.length+"个子项");
            for (int i=0;i<subs.length;i++){
                File sub =subs[i];
                System.out.println(sub.getName());
            }

        }

重载的listfiles方法


Files[] listFiles(FileFilter filter)

该方法允许我们传入一个文件过滤器,然后将当前file对象保安室的目录中的所有符合条件的子项返回
 获取./src/file目录中所有名字中含有t的文件
       

 File dir =new File("./src/file");
        if(dir.isDirectory()){
            //使用匿名内部类创建一个文件过滤器
            FileFilter filter = new FileFilter() {
                @Override
                /*
                重写accept方法
                此方法得重写原则是定义过滤器File的条件,当参数file符合此过滤器的过滤条件时,方法应当返回为true,表达过滤器接受该file
                 */

                public boolean accept(File file) {
                    String name =file.getName();
                    return name.contains("t"); //name.contains("t")方法查看是否包含括号中的内容
                }
            };
            File[] subs =dir.listFiles(filter);
            for(int i=0;i<subs.length;i++){
                System.out.println(subs[i].getName());

            }
        }

新建一个目录


在当前项目目录下新建一个文件:test.txt
创建一个File表示要创建的文件

File file =new File("./test.txt");

判断该位置下是否已经存在了这个文件或者目录
file.exists()判断当前file表示的目录或者文件是否存在,存在则返回true

if(file.exists()) {
    System.out.println("文件已被创建");
}else{
        //将该文件创建出来
    /*
    .createNewFile()方法的作用是将当前file表示的文件在当前目录下创建出来
     */
        file.createNewFile(); //alt+回车把错误抛出去
        System.out.println("文件已创建");
    }

在当前目录下新建目录:


File dir=new File("./a/b/c/d/e/f");

if(dir.exists()) {
    System.out.println("该目录已被创建");
}else{
    dir.mkdirs(); //把不存在的所有目录都搞出来,普遍使用,限制少
    System.out.println("该目录已创建");
}

在当前目录下新建一个目录:demo


File dir=new File("demo");

默认等于File dir=new File("./demo");
if(dir.exists()) {
    System.out.println("该目录已被创建");
}else{
    dir.mkdir();
    System.out.println("该目录已创建");
}

删除一个目录


       删除当前目录下的Demo目录

        File dir =new File("./demo");
        if(dir.exists()){
            /*
            在delete()应该访问的是空目录,否则删不掉
             */
            dir.delete();
            System.out.println("该目录已删除");
        }else {
            System.out.println("该目录不存在");
        }
      }

   删除当前目录下的test.txt文件


      创建一个File表示要删除的文件
      在相对路径中,“./”可以忽略不写,默认就是从./开始
    

 File file =new File("text.txt");
        if(file.exists()){
            /*
            file.delete();作用就是将当前file表示的文件删除
             */
            file.delete();
            System.out.println("该文件已删除!");
        }else{
            System.out.println("该文件不存在!");
        }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值