一.判断,获取
注意:这里写的都是我的电脑里的存文件的路径,记得把路径改为自己电脑中存储的位置
public boolean isDirectory()判断此路径名表示的File是否为文件夹
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.isDirectory());
}
}
public boolean isFile()判断此路径名表示的File是否为文件
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.isFile());
}
}
public boolean exists()判断此路径名表示的File是否存在
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.exists());
}
}
public long length()返回文件的大小(单位为字节)
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.length());
}
}
public String getAbsolutePath()返回定义文件时使用的路径
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.getAbsolutePath());
}
}
public String getName()返回文件的名称,带后缀
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.getName());
}
}
public long lastModified返回文件的最后修改时间(单位为毫秒)
import java.io.File;
public class file {
public static void main(String[] args) {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\a.txt");
System.out.println(f.lastModified());
}
}
二.创建,删除
public boolean createNewFile()创建一个新的空的文件
注意点1:该方法的boolean返回值表示创建是否成功,在()中填入的路径地址不存在则创建成功,如果已经存在则会创建失败
注意点2:如果没有写出创建文件的后缀名(.txt等等),那么就会创建一个不带有后缀的文件
import java.io.File;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\b.txt");
System.out.println(f.createNewFile());
}
}
public boolean mkdir()创建单级文件夹
注意点1:boolean返回值的作用同上
注意点2:在Windows操作系统中,路径名称是唯一的,如果重复则会创建失败
注意点3:mkdir只能创建单级文件夹,那么如果路径中包含多级没有创建的文件夹就会报错(\\aaa\\bbb\\ccc三个文件夹都还没有创建,那么就会报错)
import java.io.File;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\c");
System.out.println(f.mkdir());
}
}
public boolean mkdirs()创建多级文件夹
注意:mkdirs方法同样可以创建单级文件夹
import java.io.File;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\aaa\\bbb\\ccc");
System.out.println(f.mkdirs());
}
}
public boolean delete()删除文件和空文件夹
注意:如果删除的文件,则会直接删除(不会在回收站中存在);如果删除的是空文件夹,同样是直接删除;但是如果删除的是有内容的文件夹则会删除失败
import java.io.File;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6\\aaa\\bbb\\ccc");
System.out.println(f.delete());
}
}
三.获取并遍历
(最常用的方法)
public File[] listFiles()获取当前路径下所有内容
import java.io.File;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6");
File[] files = f.listFiles();
for (File file : files) {
System.out.println(file);
}
}
}
注意点1:当调用者File表示的路径不存在时,返回null
注意点2:当调用者File表示的路径是文件时,返回null
注意点3:当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
注意点4:当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
注意点5:当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
注意点6:当调用者File表示的路径是需要权限才能访问的文件夹时,返回null
其他的获取并遍历的成员方法:
public static File[] listRoots()列出可用的文件系统根(即获取系统中所有的盘符)
public String[] list()获取当前该路径下的所有内容(仅能获取名字)
public String[] list(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容
注意点:如果在accept中返回false,那么就代表全部过滤,什么都不返回,而如果返回true就代表全部不过滤,全都返回;我们在accept中写具体的过滤规则
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Arrays;
public class file {
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\21566\\IdeaProjects\\untitled6");
String[] str = f.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return false;
}
});
System.out.println(Arrays.toString(str));
}
}
public File[] listFiles(FileFilter filter)利用文件名过滤器获取当前该路径下的所有内容
public File[] listFiles(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容