1.File类
File类的对象可以代表文件/文件夹,并可以调用其提供的方法对象文件进行操作
- 创建File类对象
构造器 | 说明 |
---|---|
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent, String child) | 根据父路径和子路径创建文件对象 |
public File(File parent, String child) | 根据父路径对应文件和子路径名字创建文件对象 |
Tips:
a. File对象既可以代表文件、也可以代表文件夹
b. File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的
1.1 创建File类对象,去获取某个文件的信息
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
File f1=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test1");
System.out.println(f1.getName());//文件名
System.out.println(f1.exists());//检查文件或者目录是否存在
System.out.println(f1.length());//显示字节个数
}
}
1.2 可以使用相对路径定位文件对象
- 绝对路径:只要带盘符的都称之为绝对路径
- 相对路径:不带盘符,默认到你的idea工程下直接寻找文件,一般用来找工程目录下的文件
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
//绝对路径
System.out.println("---------绝对路径-----------");
File f1=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test1");
System.out.println(f1.getName());//文件名
System.out.println(f1.exists());//检查文件或者目录是否存在
System.out.println(f1.length());//字节个数
//使用相对路径定位文件夹
System.out.println("---------相对路径-----------");
File f2=new File("src\\com\\fqw\\filedemo1\\test1");
System.out.println(f2.getName());//文件名
System.out.println(f2.exists());//检查文件或者目录是否存在
System.out.println(f2.length());//字节个数
}
}
1.3 创建对象代表不存在的文件路径
import java.io.File;
import java.io.IOException;
public class FileDemo2 {
public static void main(String[] args) throws IOException {
File f1=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test2");
System.out.println(f1.exists());//检查文件是否存在
System.out.println(f1.createNewFile());//把这个文件创建出来,创建成功返回true
}
}
1.4 创建对象代表不存在的文件夹路径
import java.io.File;
import java.io.IOException;
public class FileDemo2 {
public static void main(String[] args) throws IOException {
File f2=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test");
System.out.println(f2.mkdir());//创建文件夹,成功返回true,mkdir只能创建一级文件夹
File f3=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\aaa\\test2\\test3");
System.out.println(f3.mkdirs());//创建文件夹,成功返回true,mkdirs可以创建多级文件夹
}
}
- mkdir只能创建一级文件夹
- mkdirs可以创建多级文件夹
1.5 创建File对象代表存在的文件和文件夹,然后删除它
import java.io.File;
import java.io.IOException;
public class FileDemo2 {
public static void main(String[] args) throws IOException {
File f1=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test.txt");
System.out.println(f1.createNewFile());//把这个文件创建出来,创建成功返回true
File f2=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test1");
System.out.println(f2.mkdir());//创建文件夹,成功返回true,mkdir只能创建一级文件夹
//删除文件
File f3=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test.txt");
System.out.println(f3.delete());
//删除文件夹
File f4=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\filedemo1\\test1");
System.out.println(f4.exists());
System.out.println(f4.delete());//只能删除空文件夹
}
}
Tips:delete方法只能删除文件和空文件夹
,删除后的文件不会进入回收站
1.6 File提供的遍历文件夹的方法
public String[] list() //获取当前目录下所有的“一级文件名称”到一个字符串数组中返回
public File[] listFiles() //获取当前目录下所有的“一级文件对象”到一个对象数组中去返回
import java.io.File;
public class FileDemo3 {
public static void main(String[] args) {
File f1=new File("C:\\Users\\fengqiaowei\\IdeaProjects\\untitled\\src\\com\\fqw\\MapDemo1");
String[] names=f1.list();
for(String name:names){
System.out.println(name);
}
File[] files=f1.listFiles();
for(File file:files){
System.out.println(file.getAbsolutePath());
}
}
}
Notes:使用listFiles方法时的注意事项
- 当主调是文件时,或者路径不存在,返回null
- 当主调是空文件时,返回一个长度为0的数组
- 当主调是一个有内容的文件夹时,将里面所有一级文件夹的路径放在File数组中返回
- 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中中返回,包含隐藏文件
- 当主调是一个文件夹,但没有权限访问该文件夹时,返回null