本文共 3430 字,大约阅读时间需要 11 分钟。
File 类是Java中用于处理文件和目录的高级方法,适用于任何操作系统。这一类将文件和目录的路径名抽象化,使其可以在不同系统中无缝运行。
File 类提供了一些与操作系统相关的静态成员变量,方便开发人员处理路径。
public static final String pathSeparator
:路径分隔符,可根据系统不同切换。例如:c:\text
会被自动转换为适用于不同系统的路径格式。
public static final char pathSeparatorChar;
:同上,但适用于单个字符处理。
public static final String separator;
:默认文件名分隔符,例如:/text
。
public static final char separatorChar;
:默认文件名分隔符对应的字符。
通过使用这些常量,可以在项目中统一处理不同操作系统的路径,灵活性极高。
File 类提供多种构造方式来创建新的File实例:
File(String pathname)
示例:
File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");File file2 = new File("a.txt");
File(String parent, String child)
File(File parent, String child)
File(String parent, String child)
File 类提供四种主要的获取方法:
public String getAbsolutePath()
public String getPath()
public String getName()
public int length()
示例:
File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.getAbsolutePath()); // 输出完整绝对路径System.out.println(file.getPath()); // 输出原始路径字符串System.out.println(file.getName()); // 输出文件名或目录名System.out.println(file.length()); // 文件尺寸以字节计数
File 类还提供了一系列判断方法:
public boolean exists()
public boolean isDirectory()
public boolean isFile()
public boolean isHidden()
示例:
File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.exists()); // 是否存在?System.out.println(file.isDirectory()); // 是否为目录?System.out.println(file.isFile()); // 是否为文件?System.out.println(file2.isDirectory()); // 判断另一个是否为目录System.out.println(file2.isFile()); // 检查是否普通文件
File 类支持文件和目录的操作:
public boolean createNewFile()
public void delete()
public boolean mkdir()
public boolean mkdirs()
示例:
File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.createNewFile()); // 创建新文件File dir = new File("F:/project/datastructuresandalgorithms/IODemo");System.out.println(dir.mkdirs()); // 创建包含父目录的新夹
要对文件或文件夹进行批量操作,可以使用以下方法:
public String[] list(FilenameFilter filter)
public File[] listFiles()
过滤器实现了灵活的文件筛选,可以实现特定文件类型或扩展名的筛选。
##七、过滤器的使用
使用自定义过滤器可以实现更复杂的文件筛选。你也可以实现自己的FilenameFilter
或FileFilter
接口。
示例:
File dir = new File("F:/project/datastructuresandalgorithms/IODemo");File[] files = dir.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java"); }});
这将筛选出所有符合条件的文件和目录。
使用FilenameFilter
接口,你可以更加精确地筛选文件名:
File dir = new File("F:/project/datastructuresandalgorithms/IODemo");File[] files = dir.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return new File(dir, name).isDirectory() || name.toLowerCase().endsWith(".java"); }});
这一方式适用于特定文件扩展名或文件类型的筛选。
通过以上方法,File 类为Java程序员提供了对文件系统操作的全面控制,无论是单个文件操作还是批量遍历,都能轻松实现。在实际开发中,合理使用这些功能可以显著提高工作效率。
转载地址:http://ittgz.baihongyu.com/