File文件操作

一、构建File对象

1.File(String pathname)

import java.io.File;

/**
 * java.io.File
 * File的每个实例都是用来图标是一个文件或目录
 * 实际上表示的是一个抽象路径,如果该路径存在对应的文件或目录则表示他们,否则仅表示该路径。
 * 使用File可以:
 * 1:访问其表示的文件或目录的属性信息(文件名,大小等信息)
 * 2:创建或删除文件,目录
 * 3:访问一个目录中所有的子文件
 *
 * 但是不能访问文件数据
 */
public class  FileDemo {
    public static void main(String[] args) {
        /*
        在指定路径时通常使用相对路径,因为它有更好的跨平台性
        "./"表示当前目录,当前目录具体是哪里要看当前程序的运行环境而定
        在idea或eclipse中运行时指的是当前程序所现在的项目目录

        再写相对目录时,“./"是可以忽略不写的,默认就是从他开始
         */
//        File file = new File("./test.txt");
        //与上面指定的路径是一致的

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

       String name = file.getName();
        System.out.println("文件名:"+name);
        long len = file.length();
        System.out.println("文件大小:"+len+"字节");
        boolean a =  file.canRead();
        boolean b = file.canWrite();
        boolean c = file.isHidden();
        System.out.println("是否可读:"+a);
        System.out.println("是否可写:"+b);
        System.out.println("是否隐藏:"+c);

    }
}

2.File(File parent,Stringchild)

package file;
import java.io.File;
public class  FileDemo {
        public void textFile(){
            File parent = new File("demo");
            File file = new File(parent,"HelloWorld");
            System.out.println(file);
        }
    }

3.isFile()方法

File的isFile()方法用于判断当前File对象所表示的是否为一个文件

-------- Boolean isFile()

--------返回值:当前File对象所表示的一个文件时返回true

public void testFile(){
    File file = new File("demo"+File.separator+"HelloWlrld.txt");
       System.out.println(file+"是一个文件"+file.isFile());
   }

二、File表示文件信息

1.length()方法

File的length方法用于返回由此抽象路径名表示的文件长度(占用字节量)

---- long length()

----返回值:当前File对象所表示的文件所占用的字节量

String name = file.getName();
 System.out.println("文件名:"+name);
 long len = file.length();
 System.out.println("文件大小:"+len+"字节");

2.exist()方法

File的exists方法用于测试此抽象路径名表示的文件或目录是否存在

-------Boolean exists()

------返回值:若该File表示的文件或目录存在则返回true,否则返回false

3.createNewFile()方法

File的createNewFile()方法用于当且仅当不存在具有抽象路径名指定的名称文件时,原子地创建由此抽象路径名指定的一个新的空文件

----- Boolean createNewFile()

-----返回值:如果指定文件不存在并创建成功则返回true,如果指定文件已经存在,则返回false

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

/**
 * 创建一个新文件
 * Create : 创建
 */
public class CreateNemFileDemo {
    public static void main(String[] args) throws IOException {

  //在当前项目下新建文件:demo文件.txt
        File file = new File("demo.txt");
        /*
        boolean exists()
        判断当前File表示的文件目录是否已经存在,存在返回true,否则返回false
         */
        if (file.exists()){
            System.out.println("该文件已存在!");
        }else{
            //创建file表示的文件
            file.createNewFile();
            System.out.println("文件已创建!");
        }
    }
}



delete()方法
File的delete()方法用于删除此抽象名表示的文件或目录

----Boolean delete()

----返回值:当且仅当成功删除文件或目录时,返回true;否则返回false

----需要注意的是,若此File对象所表示的是一个目录时,再删除时需要保证此为空目录才可以成功删除(目录中不含有任何子项)

public class DeleteFileDemo {
    public static void main(String[] args) {

    //将当前目录下的test.txt文件删除
        File file = new File("test.txt");
        if (file.exists()){
            file.delete();
            System.out.println("文件已删除!");
        }else{
            System.out.println("文件不存在!");
        }
    }
}

4.isDirectory()方法

File的isDirectroy()方法用于判断当前File表示的是否为一个目录

-----Boolean isDirectory()

-----返回值:当File对象表示的是一个目录时返回true;否则返回false

 

三、File表示目录信息

1.mkdir()方法

File的mkdir()方法用于创建次抽象路径名指定的目录

-----Boolean mkdir()

-----返回值:当且仅当已创建目录时,返回true否则返回false

2.mkdirs()方法

File的mkdirs()方法用于创建次抽象路径名指定的目录,包括所有必需单不存在的父目录。注意,此操作失败是也可能已经成功创建了一部分必需的父目录

-----Boolean mkdirs()

-----返回值:当且仅当已创建目录时,返回true否则返回false

import java.io.File;
/**
 * 创建一个目录
 */
public class MkDirDemo {
    public static void main(String[] args) {

      //在当前目录下创建目录:Demo
 //       File dir = new File("demo");
        //在当前目录下创建目录:./a/b/c/d/e/f
        File dir = new File("a/b/c/d/e/f") ;
        if (dir.exists()){
            System.out.println("目录已存在!");
        }else{
            //mkdir方法在创建目录时要求该目录所在目录必须存在
         //   dir.mkdir();
            //mkdirs方法在创建目录时会将不存在的父目录自动创建出来
            dir.mkdirs();
            System.out.println("目录以创建!");
        }
    }
}

3.Delete()方法

File的delete方法用于删除此抽象路径名表示的文件或目录

------Boolean delete()

------返回值:当且仅当成功删除文件或目录时返回true,否则返回false

------需要注意的是:若此File对象所表示的是一个目录时,在删除时要保证此为空目录才可以成功删除(目录中不含任何子项)

import java.io.File;
import java.sql.SQLOutput;

/**
 * 删一个目录
 */
public class DeleteDirDemo {
    public static void main(String[] args) {

      //删除当前目录中的demo目录
//        File dir = new File("demo");
        File dir = new File("./a");
        if (dir.exists()){
            /*
            删除目录时要注意,只有该目录是一个空目录时才可以删除
             */
            dir.delete();
            System.out.println("目录已删除!");
        }else{
            System.out.println("目录不存在!");
        }

    }
}

4.listFile()方法

File的listFiles方法用于返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的子项(文件或目录)。

------- File[] listFiles()

-------返回值:抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空那么数组也将为空。如果抽象路径名不表示一个目录,或者发生I/O错误,则返回null。

import javax.swing.*;
import java.io.File;

/**
 * 获取一个目录中的所有子项
 */
public class ListFilesDemo {
    public static void main(String[] args) {


        //获取当前目录下的所有子项
        File dir = new File(".");
        /*
        boolean   isFile();
        判断当前File表示的是否为一个文件
        boolean   isDirectory()
        判断当前File表示的是否为一个目录
         */
        if (dir.isDirectory()){
            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());
            }
        }

    }
}

5.FileFiter()方法

FileFilter用于抽象路径名的过滤器

此接口的实例可传递给File类的listFiles(FileFilter) 方法。用于返回满足该过滤器要求的子项。

----- File[] listFiles(FileFilter filter)
 

File[] list = dirlistFiles(new FileFilter() {

@Override

public boolean accept(File pathname) {

return pathname.getName(.startsWith(".");

}

});
import java.io.File;
import java.io.FileFilter;

public class ListFilesDemo2 {
    public static void main(String[] args) {


        //列出./src/file目录里的所有子项
        File dir = new File("./src/file");
        if (dir.isDirectory()){
            //获取名字以“list”开头的子项
            //创建一个文件过滤器,并定义过滤器规则
            FileFilter filter = new FileFilter() {
                //定义过滤器规则,当file符合要求则方法应当返回true
                public boolean accept(File file) {
                    String name = file.getName();
                    return name.startsWith("List");
                }
            };
            /*
            重载的listFiles方法要求我们传入一个文件过滤器
            这个方法将该目录中的所有子项都经过一次给定的
            过滤器的accept方法,然后仅将返回为true的子项保留
             */
            File[]  subs = dir.listFiles(filter);
            System.out.println("文件下有"+subs.length+"个子项");
            for (int i = 0; i < subs.length; i++) {
                File sub = subs[i];
                System.out.println(sub.getName());
            }
        }
    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Healer_小振

感谢大佬的支持和鼓励!

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

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

打赏作者

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

抵扣说明:

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

余额充值