欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java File类

程序员文章站 2022-06-16 21:22:58
...

File类:java.io包下代表与平台无关的文件和目录,换个说法:使用File类可以在程序中操作文件和目录

  • 学习javaIO流的先行工具。
  • File类通俗讲也是一个类,所欲我们需要了解这个类的子类以及方法等等。
方法 返回值 说明
String getName() String 返回file对象对应的文件名或者最后一级路径名
String getPath() String 返回File对象对应的路径名
File getAbsoluteFile() File 返回file对象所对应的绝对路径名
String getAbsolutePath() String 返回file对象所对应的绝对路径名
String getPrarent() String 返回file对象所对应的目录(最后一级子目录)的父目录名
boolean renameTo(File dest) boolean 重新命名此抽象路径名表示的文件。
boolean exists() boolean 测试此抽象路径名表示的文件或目录是否存在。
boolean canRead() boolean 测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite() boolean 测试应用程序是否可以修改此抽象路径名表示的文件。
boolean isFile() boolean 且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false
boolean isDirectory() boolean 测试此抽象路径名表示的文件是否是一个目录。
boolean isAbsolute() boolean 判断File对象对应的文件或者目录是否是一个绝对路径。
long lastModified() long 返回此抽象路径名表示的文件最后一次被修改的时间
long length() long 返回由此抽象路径名表示的文件的长度。
boolean createNewFile() boolean 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
boolean delete() boolean 删除此抽象路径名表示的文件或目录。
static File createNewTempFile(String prefix,String suffix) File 在默认临时文件目录中创建一个临时的空文件
static File createNewTempFile(String prefix,String suffix,File directory) File 在给定的目录中创建一个临时文件
void deleteOnExit() 当jvm退出时,删除File对象所对应的文件和目录
boolean mkdir() boolean 创建此抽象路径名指定的目录。
boolean mkdirs() boolean 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
String[] list() String[] 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
File[] listFiles() File[] 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
static File[] listRoots() File[] 列出系统所有的根路径

简单知识点

  • 相对路径:windows不带盘符的路径
  • 绝对路径: windows下d带盘符的路径/linux下开头是(/)的路径
  • windows下路径分割符使用反斜线,java反斜线表示转义字符,所以需要在windows的路径下包括反斜线,则应该使用\\。也可以使用/,java支持将/当成与平台无关的路径分隔符。

文件过滤器

  • file类的list可以接受一个FilenameFilter参数通过参数可以只列出符合条件的文件
  • filenameFilter接口里包含了一个accept(file dir,String name)方法,该方法将依次对指定的File的所有子目录或者文件进行迭代,如果方法返回true,则list()方法会列出子目录或者文件。

实例1public class FilenameFilterTest {
    public static void main(String[] args) {
        File file = new File("D:\\java代码");
        //lambad实现文件过滤器
        //返回以java文件扩展名结尾的文件名
        String[] list = file.list((dir, name) -> name.endsWith(".java"));
        for (String name :list){
            System.out.println("java文件有:"+name);
        }
    }
}

实例2package banban.study13.IO.File;

import java.io.File;
import java.io.FilenameFilter;

/**
 * @ClassName FilenameFilterTest1
 * @Author zhang-peng-zhan
 * @Date 2018/11/6 19:18
 */
public class FilenameFilterTest1 {
    public static void main(String[] args) {
        //需求:判断D盘指定目录下是否有后缀名.jpg的文件,如果有,就输出该文件名称
        File file = new File("E:\\Java图片视频");
        File[] file1 = file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return new File(dir,name).isDirectory()&&name.endsWith(".png");
            }
            //public boolean accept(File dir, String name) {

                // 封装指定的文件为一个File对象
//                File file = new File(dir , name) ;
//
//                System.out.println(file);
//                boolean flag = file.isFile() && file.getName().endsWith(".png") ;

                // 后缀名为.jpg的文件
//                 System.out.println(dir + "----" + name);

               // return new File(dir, name).isFile() && name.endsWith(".png") ;
           // }
        });
        for (File f : file1){
            System.out.println(f.getName());
        }
    }
}

相关标签: java File File类