1.File 类静态属性
为了系统的可移植 路径和文件名分隔符不要hardcode,应该使用下面的属性替换
pathSeparator 路径分隔符 windows=; linux=:
separator 文件名称分隔符 windows=\ linux=/
// 测试
public class FileDemo {
public static void main(String[] args) {
System.out.println(File.separator);
System.out.println(File.pathSeparator);
}
}
2.File类 构造方法
构造函数只能传递一个String类型的参数,参数可以为相对路径、绝对路径;可以为目录或者文件。
//参数为:绝对路径 目录
File file = new File("/Users/lidalin");
//参数为:绝对路径 文件
File file2 = new File("/Users/lidalin/demo.txt");
//参数为:相对路径 文件
File file3 = new File("demo.txt");
从父路径名字符串和子路径名字符串创建新的 File实例
//File(String parent, String child)
//优点:更加灵活
File file4 = new File("/Users/lidalin/", "demo.txt");
从父抽象路径名和子路径名字符串创建新的File实例。
优点:可以通过file对象的方法,处理文件路径
//File(File parent, String child)
//优点:可以通过file类的目录格式化方法对父路径处理
File file5 = new File(file.getParent(), "demo.txt");
System.out.println(file5);
常用方法
get 类型
getAbsolutePath
File file3 = new File("demo.txt");
// 返回此抽象路径名的绝对路径名字符串
public String getAbsolutePath()
System.out.println(file3.getAbsoluteFile());
output:/Users/lidalin/Projects/personal/java-io/demo.txt
getPath
// 将此抽象路径名转换为路径名字符串
public String getPath()
System.out.println(file3.getPath());
output:demo.txt
getName
// 返回由此抽象路径名表示的文件或目录的名称
public String getName()
System.out.println(file3.getName());
output:demo.txt
length
// 返回由此抽象路径名表示的文件的长度
// 文件夹无大小
// 大小单位为字节
public long length()
System.out.println(file3.length());
判断类型
isDirectory()
校验路径名表示的文件是否为目录。
isFile()
校验路径是否为文件
isHidden()
是否为隐藏文件
exists()
文件或路径是否存在
创建类型
createNewFile()
当文件不存在时创建一个新文件,如果目录不存在抛出异常
File file = new File("text.txt");
boolean newFile = file.createNewFile();
mkdir()
创建单个目录,如果文件夹已经存在抛出异常返回false
boolean mkdir()
File file = new File("abc");
boolean mkdir = file.mkdir();
System.out.println(mkdir);
mkdirs()
创建多个文件夹
boolean mkdirs()
File file = new File("a"+File.separator+"b");
boolean mkdir = file.mkdirs();
System.out.println(mkdir);
delete()
直接删除文件或者文件夹,不经过回收站
boolean delete()
File file = new File("abc");
boolean delete = file.delete();
System.out.println(delete);
遍历类型
String[] list()
返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录
File file = new File("/");
String[] list = file.list();
for (String s : list) {
System.out.println(s);
}
File[] listFiles()
返回文件对象数组,表示由该抽象路径名表示的目录中的文件
File file = new File("/");
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}