文件的基本操作:
判断是否是文件:file.isFile());
判断是否是路径:file.isDirectory());
判断是否存在关联(文件或目录是否存在):file.exists()
文件名:file.getName()
文件大小: file.length()
文件最后修改时间:file.lastModified()
文件路径: file.getAbsolutePath()
文件父级路径:file.getParentFile()
文件是否可读: file.canRead()
文件是否可写: file.canWrite()
文件是否隐藏: file.isHidden()
创建多级目录(常用,能够创建多个不存在的目录):file.mkdirs
创建目录(如果创建中有多个目录不存在则不存则无法创建成功):file.mkdir
创建父级目录:file.getParentFile().mkdirs()
创建文件(需要存在父级目录才能成功的创建文件,与file.getParentFile().mkdirs()结合使用):file.createNewFile()
获取文件夹中的所有文件:file.list()
获取文件夹中指定后缀的文件:file.list(new ImageFilter())
遍历文件夹中的所有文件
String[] list1 = file.list();
for (String s : list1) {
System.out.println("显示指定的文件:" + s);
}
遍历文件夹中指定类型的文件
实现FilenameFilter方法中的accept方法
class ImageFilter implements FilenameFilter {
// 实现 FilenameFilter 接口
@Override
public boolean accept(File dir, String name) {
// 指定允许的文件类型
return name.endsWith(".sys") || name.endsWith(".txt") || name.endsWith(".bak");
}
}
list中传入ImageFilter对象
String[] list1 = file.list(new ImageFilter());
for (String s : list1) {
System.out.println("显示指定的文件:" + s);
}
完整代码
package com.origin.io.file;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class JavaIOFile {
public static void main(String[] args) {
// TODO Java IO - 文件流
// TODO File :文件类型,属于java.io
// 创建文件对象,使用文件路径关联系统文件
/*测试文件,打开注释要打开下方的"测试文件路径",注释掉"测试文件路径"---------------------------------------------------------*/
// String filePath = "C:\\Users\\Yan\\IdeaProjects\\JavaProject\\myNote\\resources\\data\\data.txt";
// 创建文件路径,关联文件路径
/*测试文件路径,打开注释要打开下方的"测试文件路径",注释掉"测试文件路径"---------------------------------------------------------*/
String filePath = "C:\\Users\\Yan\\IdeaProjects\\JavaProject\\myNote\\resources\\data\\test";
File file = new File(filePath);
// 文件对象操作
System.out.println("文件路径:" + file);
System.out.println("判断是否是文件:" + file.isFile());
System.out.println("判断是否是路径:" + file.isDirectory());
System.out.println("判断是否存在关联(存在文件或者存在文件夹则为存在关联):" + file.exists());
System.out.println("------------------------------------------------------");
if (file.exists()) { // 判断是否存在关联(存在文件或者存在文件夹则为存在关联)
// TODO 文件对象存在的情况
System.out.println("有这个文件,关联成功");
if (file.isFile()) { // 判断是否是文件
System.out.println("文件对像关联是一个文件");
System.out.println("文件名:" + file.getName());
System.out.println("文件大小:" + file.length());
System.out.println("文件最后修改时间:" + file.lastModified());
System.out.println("文件路径:" + file.getAbsolutePath());
System.out.println("文件是否可读:" + file.canRead());
System.out.println("文件是否可写:" + file.canWrite());
System.out.println("文件是否隐藏:" + file.isHidden());
// System.out.println("文件是否删除成功:"+file.delete());
} else if (file.isDirectory()) { // 判断是否是路径
System.out.println("对象是一个目录");
System.out.println("目录名:" + file.getName());
System.out.println("目录最后修改时间:" + file.lastModified());
System.out.println("文件路径:" + file.getPath());
System.out.println("目录绝对路径:" + file.getAbsolutePath());
System.out.println("------------------------------------------------------");
// 获取文件夹下的全部文件
String[] list = file.list();
for (String s : list) {
System.out.println("目录中的文件:" + s);
}
System.out.println("------------------------------------------------------");
// 获取文件夹下指定后缀的文件
String[] list1 = file.list(new ImageFilter());
for (String s : list1) {
System.out.println("显示指定的文件:" + s);
}
System.out.println("------------------------------------------------------");
// 只会删除最后一级的目录
// System.out.println("目录是否删除成功:"+file.delete());
}
} else {
// TODO 文件对象不存在的情况下进行的操作
/*测试文件路径---------------------------------------------------------*/
System.out.println("没有这个文件,没有关联成功");
// 文件不存在则创建文件,创建目录
file.mkdirs();
System.out.println("路径创建成功");
/*测试文件---------------------------------------------------------*/
// getParentFile获取对象父级目录,file.getParentFile().mkdirs()生成父级文件夹,为了使createNewFile找不到父级文件产生异常,要建立父级文件。
// file.getParentFile().mkdirs();
// try {
// // 文件不存在则创建新文件,创建文件,父级文件夹不存在则无法创建
// file.createNewFile();
// System.out.println("文件创建成功");
// } catch (IOException e) {
// throw new RuntimeException(e);
// }
}
}
}
class ImageFilter implements FilenameFilter {
// 实现 FilenameFilter 接口
@Override
public boolean accept(File dir, String name) {
// 指定允许的文件类型
return name.endsWith(".sys") || name.endsWith(".txt") || name.endsWith(".bak");
}
}