1、File类的构造方法
案例演示
1. File file = new File("D:\\学习资料\\java学习笔记.txt") ;//根据一个路径得到File对象
2. File file2 = new File("D:\\学习资料" , "java学习笔记.txt") ;//根据一个目录和一个子文件得到File对象
3. File file3 = new File("D:\\学习资料") ;
File file4 = new File(file3 , "java学习笔记.txt") ;//根据一个父File对象和一个子文件得到File对象
2、File类的创建功能
案例演示
public class MyDemo {
public static void main(String[] args) {
File file = new File("D:\\myTest");
file.createNewFile();//创建文件
//创建目录,第一次创建,如果创建成功返回true,如果目录已经存在,则不会重复创建,返回false
boolean b = file.mkdir(); //只能创建单级目录
File file1 = new File("D:\\myjava\\bbb\\ccc");
boolean mkdirs = file1.mkdirs();//创建单级或多级目录
}
}
注意事项:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
相对路径:没有带盘符的路径
绝对路径:带有盘符的路径
3、File类的删除功能
public boolean delete():删除文件或者文件夹
注意:a.删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除
b.Java中的删除不走回收站。要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
4、File类的重命名功能
public boolean renameTo(File dest):把文件重命名为指定的文件路径
案例演示
public class MyTest {
public static void main(String[] args) {
重命名:如果调用renameTo(File dest); 传入的文件路径和源文件路径一样,则是重命名
File file = new File("e.txt");
boolean b = file.renameTo(new File("ee.txt")); //返回值是是否重命名成功
System.out.println(b);
File file = new File("f.txt");
重命名如果调用renameTo(File dest); 传入的文件路径和源文件路径不一样,则是剪切重命名
boolean a = file.renameTo(new File("D:\\f.txt"));
System.out.println(a);
}
}
5、File类的判断功能
案例演示
public class MyDemo {
public static void main(String[] args) throws IOException {
File file = new File("a.txt");
file.createNewFile();
boolean b = file.isDirectory();//判断是否是目录
System.out.println(b);
boolean b1= file.isFile();//判断是否是文件
System.out.println(b1);
boolean b2 = file.exists();//判断是否存在
System.out.println(b2);
boolean b3 = file.canRead();//判断是否可读
System.out.println(b3);
boolean b4 = file.canWrite();//判断是否可写
System.out.println(b4);
boolean b5 = file.isHidden();//:判断是否隐藏
System.out.println(b5);
}
}
6、File类的获取功能
案例演示
public class MyDemo2 {
public static void main(String[] args) throws IOException {
//有关于获取的方法
File file = new File("a.txt");
file.createNewFile();
//获取文件名
String name = file.getName();
System.out.println(name);
//获取文件大小
long length = file.length();
System.out.println(length);
File file1 = new File("D:\\test.exe");
String absolutePath = file1.getAbsolutePath();//返回的是绝对路劲的字符串表现形式
System.out.println(absolutePath);
File file2 = file1.getAbsoluteFile();//返回的是文件形式
System.out.println(file2.toString());
File file3 = new File("b.txt");
String path = file3.getPath(); //获取相对路径
System.out.println(path);
File file4 = new File("D:\\", "test.exe");
//获取父路径
String parent = file4.getParent();
System.out.println(parent);
File parentFile = file4.getParentFile();
System.out.println(parentFile.toString());
File file5 = new File("D:\\");
//获取该空间的总容量,单位是字节
long totalSpace = file5.getTotalSpace();
System.out.println(totalSpace/1024/1024/1024+"G");
//获取该空间的剩余容量
long freeSpace = file5.getFreeSpace();
System.out.println(freeSpace/ 1024.0 / 1024.0 / 1024.0 + "G");
7、输出指定目录下指定后缀的文件名
案例演示: 需求:判断D盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
分析:
a: 把D:\\demo这个路径封装成一个File对象
b: 获取该路径下所有的文件或者文件夹对应的File数组
c: 遍历这个数组,进行判断
public class MyDemo {
public static void main(String[] args) {
File file = new File("D:\\我的图片和音乐\\图片");
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()&&f.getName().endsWith(".jpg")){
System.out.println(f.getName);
}
}
}
}
8、文件名称过滤器的概述及使用
文件名称过滤器的概述
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
文件名称过滤器的使用: 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
分析:
a: 把E:\\demo这个路径封装成一个File对象
b: 获取所有的以.jpg结尾的文件数组 (相当于过滤)
c: 遍历数组
public class MyTest2 {
public static void main(String[] args) {
File file = new File("D:\\图片");
//获取该目录下所有的文件和文件夹
//这个方法里面可传递一个过滤器,可以过滤符合要求的文件
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file1 = new File(dir, name);
/**
* dir: 表示的当前文件对应的父文件
* name: 就是每一个文件对应的名称
*/
if (file1.isFile() && file1.getName().endsWith(".jpg")) {
return true;
} else {
return false;
}
}
});
for (File file1 : files) {
String path = file1.getAbsolutePath();
System.out.println(path);
}
}
}