文章目录
1.File类的概述和构造方法
1.1File类的概述:
封装文件和目录名称和路径的类。
1.2File类的构造方法
-
File(String pathname):
根据一个路径得到File对象 -
File(String parent, String child):
根据一个目录和一个子文件/目录得到File对象 -
File(File parent, String child):
根据一个父File对象和一个子文件/目录得到File对象 -
File(URI uri)
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例
1.3File类的创建功能
-
public boolean createNewFile():
创建新的文件,如果这个文件存在,则返回创建文件失败。 -
public boolean mkdir():
创建文件夹 如果存在这样的文件夹,就不创建了 -
public boolean mkdirs():
创建多级文件夹
注意事项:
如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
补充:
- 相对路径:没有带盘符的路径
- 绝对路径:带有盘符的路径
1.4File类的删除功能
- public boolean delete():
删除文件或者文件夹
注意:
1.文件夹为空才可以删除。
2.Java中的删除不走回收站。
public class File_text1 {
public static void main(String[] args) {
File file = new File("H:\\java\\day 16\\笔记\\day19 - 副本.txt");
System.out.println(file.delete());
}
}
1.5File类的重命名功能
- public boolean renameTo(File dest):
将所要更改的文件的路径及名称做指定的更改。
注意事项:
-
如果路径名相同,就是改名。
-
如果路径名不同,就是改名并剪切。
1.6File类的判断功能
-
public boolean isDirectory():
判断是否是目录 -
public boolean isFile():
判断是否是文件 -
public boolean exists():
判断是否存在 -
public boolean canRead():
判断是否可读 -
public boolean canWrite():
判断是否可写 -
public boolean canExecute()
测试应用程序是否可以执行此抽象路径名表示的文件。 -
public boolean isHidden():
判断是否隐藏
1.7File类的获取功能
-
public String getAbsolutePath():
获取绝对路径 -
public String getPath():
获取相对路径
public class File_text1 {
public static void main(String[] args) {
File file = new File("a");
System.out.println(file.getAbsoluteFile());
System.out.println(file.getPath());
}
}
结果:
E:\trbsh\a
a
-
public String getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 -
public File getParentFile()
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。 -
public long getTotalSpace()
返回此抽象路径名指定的分区大小。 返回总容量 单位字节 -
public long getFreeSpace()
返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节 -
public String getName():
获取名称 -
public long length():
获取长度。字节数 -
public long lastModified():
获取最后一次的修改时间,返回毫秒值 -
public String[] list():
获取指定目录下的所有文件或者文件夹的名称数组 -
public File[] listFiles():
获取指定目录下的所有文件或者文件夹的File数组
2.案例
2.1 判断C:\text目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
public class File_text1 {
public static void main(String[] args) {
File file = new File("C:\\text");
outputPaper(file);
}
private static void outputPaper(File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile() && f.getName().endsWith(".jpg")) {
System.out.println(f.getName());
}
if (f.isDirectory()) {
outputPaper(f);
}
}
}
}
结果:
5949d37e8e84d.jpg
307811.jpg
5949d37c41ca7.jpg
5949d37e8e84d.jpg
QQ图片20180909111816.jpg
2.2 文件名称过滤器的概述及使用
2.2.1 文件名称过滤器的概述
- public String[] list(FilenameFilter filter)
- public File[] listFiles(FilenameFilter filter)
2.2.2 文件名称过滤器的使用:
需求:
判断C:\text目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
2.3 查找指定路径下的所有以.txt结尾的文件
说明:
不用判断目录是否为空的情况,因为isDirectory()和isFIle()方法里面已经做了判空处理。
public class File_test {
public static void main(String[] args) {
String url = "E:\\新建文件夹 (2)";
File file = new File(url);
findTex(file);
}
public static void findTex(File file) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isFile() && f.getName().endsWith(".txt")) {
System.out.println(f.getName());
}
if (f.isDirectory()) {
findTex(f);
}
}
}
}
三、File类常用方法
- public String getAbsolutePath():
获取绝对路径 - public String getPath():
获取相对路径 - public String getName():
获取名称 - public long length():
获取长度。字节数 - public String[] list():
获取指定目录下的所有文件或者文件夹的名称数组 - public File[] listFiles():
获取指定目录下的所有文件或者文件夹的File数组