文件的创建:

package file;

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

/*
create:创建
new:新
file:文件

使用File新建一个文件

/
public class CreateNewFileDemo {
public static void main(String[] args) throws IOException {
//在当前项目目录下新建一个文件:test.txt
//1创建一个File表示要创建的文件
File file = new File(“./test.txt”);
//2判断该位置下是否已经存在了这个文件或目录
/

boolean exists()
判断当前File表示的文件或目录是否真实存在,存在则返回true
/
if(file.exists()){
System.out.println(“该文件已存在”);
}else{
//3将该文件创建出来
/

createNewFile方法的作用是将当前File表示的文件在该位置创建出来
*/
file.createNewFile();//光标在这句代码中按alt+回车
System.out.println(“文件已创建”);
}

}

}

文件的删除:

package file;

import java.io.File;
import java.io.FileFilter;

/**

  • 获取./src/file目录中所有名字以”D”开始的文件
    */
    public class Test2 {
    public static void main(String[] args) {
    FileFilter filter = new FileFilter() {
    //只要file表示的文件的名字是以”D”开始的则接受
    public boolean accept(File file) {
    String name = file.getName();
    System.out.println(“正在过滤:”+name);
    return name.startsWith(“D”);
    }
    };
    File dir = new File(“./src/file”);
    File[] subs = dir.listFiles(filter);
    for(int i=0;i<subs.length;i++){
    System.out.println(subs[i].getName());
    }
    }
    }

文件的访问:

package file;

import java.io.File;

/**

  • java.io.File

  • File可以表示硬盘上的一个文件或目录(本质保存的是一个抽象路径)

  • File可以:

  • 1:访问其表示的文件或目录的属性

  • 2:创建删除文件或空目录

  • 3:访问一个目录中的子项

  • File不可以:

  • 访问文件数据
    */
    public class FileDemo {
    public static void main(String[] args) {
    //绝对路径的优点是清晰明了,但是缺点是路径写死了,跨平台行不好。
    // File file = new File(“c:/Users/X/IdeaProjects/JSD2206_SE/demo.txt”);
    //相对路径的优点是有良好的跨平台性。
    //“./”表示当前目录,在IDEA中当前目录指的是当前程序所在的项目目录
    File file = new File(“./demo.txt”);

     //获取file表示的文件或目录的名字
     String name = file.getName();
     System.out.println(name);
    
     //获取当前file表示的文件的大小(单位是字节)
     long len = file.length();
     System.out.println("大小:"+len+"个字节");
    
     /*
         can:能
         write:写
         read:读
      */
     boolean cw = file.canWrite();//是否可写
     boolean cr = file.canRead();//是否可读
     System.out.println("是否可写:"+cw);
     System.out.println("是否可读:"+cr);
    

    }
    }

读取文件中所有的子项:

package file;

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()){//判断当前dir表示的是否为一个目录
         /*
             File[] 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());
         }
     }
    

    }
    }

在文件中设置过滤器找出符合过滤器要求的子项:

package file;

import java.io.File;
import java.io.FileFilter;

/**

  • 重载的listFiles方法
  • File[] listFiles(FileFilter filter)
  • 该方法允许我们传入一个文件过滤器,然后将当前File对象表示的目录中所有满足此过滤器要求的
  • 子项返回。
    /
    public class ListFilesDemo2 {
    public static void main(String[] args) {
    /

    获取./src/file目录中所有名字中含有“t”的文件
    /
    File dir = new File(“./src/file”);
    if(dir.isDirectory()){
    //使用匿名内部类创建一个文件过滤器
    FileFilter filter = new FileFilter() {
    /

    重写accept方法(accept:接受)
    此方法的重写原则是定义过滤器过滤File的条件。当参数file符合此过滤器
    的过滤条件时,方法应当返回为true。表达过滤器接受该file。
    */
    public boolean accept(File file) {
    String name = file.getName();
    // return name.indexOf(“t”)>=0;
    return name.contains(“t”);//contains:包含
    }
    };
    File[] subs = dir.listFiles(filter);
    for(int i=0;i<subs.length;i++){
    System.out.println(subs[i].getName());
    }
    }
    }
    }

目录的创建:

package file;

import java.io.File;

/**

  • make:做

  • directory:目录(文件夹)

  • 创建一个目录
    */
    public class MkDirDemo {
    public static void main(String[] args) {
    //在当前目录下新建一个目录:demo
    // File dir = new File(“./demo”);
    // File dir = new File(“demo”);

     File dir = new File("./a/b/c/d/e/f");
     if(dir.exists()){
         System.out.println("该目录已存在!");
     }else{
         /*
             mkdir()创建当前File表示的目录,前提是该目录所在的目录必须存在。
             mkdirs()创建当前File表示的目录,并会将所有不存在父目录一同创建出来。
             实际开发中推荐使用mkdirs这个方法。
          */
    

// dir.mkdir();
dir.mkdirs();
System.out.println(“该目录已创建!”);
}
}
}

目录的删除:

package file;

import java.io.File;

/**

  • 删除一个目录
    /
    public class DeleteDirDemo {
    public static void main(String[] args) {
    //删除当前目录下的demo目录
    // File dir = new File(“./demo”);
    File dir = new File(“./a”);
    if(dir.exists()){
    /

    delete()方法在删除目录是要求该目录必须是一个空目录
    */
    dir.delete();
    System.out.println(“该目录已删除!”);
    }else {
    System.out.println(“该目录不存在!”);
    }
    }
    }