File
1.概述:
Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等,File对象通常可以代表磁盘中实际存在的文件和目录。
2.常用方法
1>构造方法
new File(File parent, String child) //根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
new File(String pathname) //通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
new File(String parent, String child) //根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
new File(URI uri) //通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
2>常用方法
boolean exists():是否存在
String getAbsolutePath():绝对路径
String getName():文件名
int length():文件大小
String getParent():父目录路径
File getParentFile():父目录file对象
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolan isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
File的增删改查
1.创建文件
//构建路径
String pathname = "d:" + File.separator + "a" + File.separator + "b.txt";
//创建文件对象
File file = new File(pathname);
System.out.println("是否存在" + file.exists());
File parentFile = file.getParentFile();
System.out.println("目录是否创建成功" + parentFile.mkdirs());
System.out.println("文件创建是否成功" + file.createNewFile());
2.修改
String pathname2 = "d:" + File.separator + "b" + File.separator + "c.txt";
File dest = new File(pathname2);
System.out.println("是否修改" + file.renameTo(dest));
3.删除
1>简单地删除,只能删除文件和空文件夹
System.out.println("是否删除" + file.delete());
//file.deleteOnExit()当虚拟机终止时请求删除文件和文件夹
2>运用,可以删除文件夹
public static void deleteFile(File file) {
//如果是文件,可以直接删除
if (file.isFile())
file.delete();
else {
for (File file2 : file.listFiles()) {
deleteFile(file2);
}
file.delete();
}
}
4.遍历
File[] files = file.listFiles();
for (File file2 : files) {
//查找所需的文件
if (file2.getName().endsWith(".txt") && file2.isFile()) {
System.out.println(file2);
}
}
创建目录树
运用递归的方法将复杂的问题简单化,一步一步的降解,最终化为可以简单解决的小问题
public static void printFile(File file, int leve) {
for (int i = 0; i < leve; i++) {
System.out.print("--");
}
System.out.println(file.getName());
//如果为空或者文件不存在,结束方法
if (null == file || !file.exists()) {
return;
} else if (file.isDirectory()) {
for (File file2 : file.listFiles()) {
printFile(file2, leve + 1);
}
}
}
总结
1.创建文件不能创建文件的目录,所以要先构建其父目录;
2.删除只能删除文件或空文件夹;
3.修改时文件名发生改变,此时文件路径将发生改变;
4.list()返回的是一个String数组,listFiles()返回的是File数组。