读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。
File类构造方法
/* 看API学习File类。
*
* File既可以表示文件,也可以表示文件夹。(目录)
* 构造方法:
* File(String pathname):根据指定的路径创建File对象。
* File(String parent, String child):根据指定的父文件夹和子文件或者文件夹创建File对象
* File(File parent, String child):根据指定的父文件夹对象和子文件或者文件夹创建File对象
*/
File类构造方法的代码测试
public class FileDemo {
public static void main(String[] args) {
// 方式1
File file = new File("d:\\a.txt");
File file2 = new File("d:\\aaa");
// 方式2
File file3 = new File("d:\\", "a.txt");
File file4 = new File("d:\\", "aaa");
// 方式3
File file5 = new File("d:\\");
File file6 = new File(file5, "a.txt");
File file7 = new File(file5, "aaa");
}
}
File的常用方法之创建功能
/*
* 创建功能:
* 创建文件:public boolean createNewFile()
* 如果指定的文件不存在,就创建。如果存在,就不创建。
* 创建文件夹:public boolean mkdir()
* 创建指定的目录,如果存在,就不创建。
* public boolean mkdirs()
* 创建指定的目录,如果存储,就不创建。这个时候,如果父目录不存在,它也会自动创建。
*
* 注意:
* 你要创建什么,自己最清楚。也就是,你要调用哪个方法,你自己必须明白。
* 因为如果你不明白,就会有问题。
* 什么问题呢?骑白马的不一定是王子,可能是田野。
*
* 绝对路径:以盘符开始的路径。
* 相对路径:不以盘符开始的路径。
*/
File的常用方法之创建功能的代码测试
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建文件
File file = new File("d:\\a.txt");
System.out.println("createNewFile:" + file.createNewFile());
// 创建文件 忘了写路径名称了,以当前项目路径所在路径为父目录
File file2 = new File("a.txt");
System.out.println("createNewFile:" + file2.createNewFile());
// 创建目录
File file3 = new File("aaa");
System.out.println("mkdir:" + file3.mkdir());
// 创建多级目录 如果想创建一个指定的目录或者文件,要求,父目录必须存在。
// File file4 = new File("bbb\\ccc");
// System.out.println("mkdir:" + file4.mkdir());
// 如果目录过多,这样做就太麻烦。肿么办呢?
File file4 = new File("bbb\\ccc");
System.out.println("mkdirs:" + file4.mkdirs());
// 创建文件
File file5 = new File("b.txt");
System.out.println("mkdir:" + file5.mkdir());
}
}
File的常用方法之删除功能
/*
* 删除功能:
* public boolean delete():既可以删除文件,也可以删除文件夹。取决于你使用的对象。
*
* 注意:
* A:如果你删除的目录下还有内容,那么,必须先把所有内容删除完毕后,在删除目录。
* B:java语言的删除不走回收站。
*/
代码不做具体测试
File的常用方法之判断功能
/*
* 判断功能
* boolean exists():判断file对象是否存在
* boolean isFile():判断file对象是否是文件
* boolean isDirectory():判断file对象是否是文件夹
* boolean isAbsolute():判断file对象是否是绝对路径
* boolean canRead():判断file对象是否可读
* boolean canWrite():判断file对象是否可写
* boolean isHidden():判断file对象是否隐藏
*/
File的常用方法之判断功能的代码测试
public class FileDemo {
public static void main(String[] args) {
File file = new File("a.txt");
System.out.println("exists:" + file.exists());// true
System.out.println("isFile:" + file.isFile());// true
System.out.println("isDirectory:" + file.isDirectory());// false
System.out.println("isAbsolute:" + file.isAbsolute());// false
System.out.println("canRead:" + file.canRead());// true
System.out.println("canWrite:" + file.canWrite());// true
System.out.println("isHidden:" + file.isHidden());// false
}
}
File的常用方法之获取功能
/*
* 获取功能:
* String getAbsolutePath():绝对路径
* String getPath():相对路径
* String getName():文件名称
* long length():文件大小,单位是字节
* long lastModified():上次修改时间的毫秒值。
*/
File的常用方法之获取功能的代码测试
public class FileDemo {
public static void main(String[] args) {
// 需求:指向文件
File file = new File("bbb\\ccc\\a.txt");
System.out.println("getAbsolutePath:" + file.getAbsolutePath());
System.out.println("getPath:" + file.getPath());
System.out.println("getName:" + file.getName());
System.out.println("length:" + file.length());
System.out.println("lastModified:" + file.lastModified());
Date d = new Date(file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(d));
}
}
File的常用方法之获取功能二
/*
* 获取功能:
* public static File[] listRoots():列出可用的系统文件根目录
* public String[] list():返回的是指定目录下所有文件或者文件夹的名称数组
* public File[] listFiles():返回的是指定目录下所有文件或者文件夹对象数组
*/
File的常用方法之获取功能二的代码测试
public class FileDemo {
public static void main(String[] args) {
File[] listRoots = File.listRoots();
for (File file : listRoots) {
System.err.println(file.getName());
}
// 创建对象
File file = new File("/private/etc/");
String[] list = file.list();
for (String string : list) {
System.out.println(string);
}
System.out.println("-----------------");
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
System.out.println(file2.getName());
}
}
}
案例一:获取指定目录下所有.mp4文件的名称
/*
* 需求:获取指定目录下所有.mp4文件的名称。
*
* 思路:
* A:封装指定目录
* B:获取指定目录下所有文件或者文件夹File数组
* C:遍历File数组,获取得到每一个File对象
* D:判断该对象是否是否文件
* E:判断该对象的后缀名是否是.mp4,是否以.mp4结尾。
*/
案例一:获取指定目录下所有.mp4文件的名称的代码测试
public class FileTest {
public static void main(String[] args) {
// 封装指定目录
File f = new File("d:\\");
// 获取指定目录下所有文件或者文件夹File数组
File[] fileArray = f.listFiles();
// 遍历File数组,获取得到每一个File对象
for (File file : fileArray) {
// 判断该对象是否是否文件
if (file.isFile()) {
// 判断该对象的后缀名是否是.mp4,是否以.mp4结尾。
String name = file.getName();
if (name.endsWith(".mp4")) {
System.out.println(name);
}
}
}
}
}