Java基础-File类

File类介绍

File类使用的包是java.io.file,主要用于对文件和目录的新建、删除、重命名,File不支持对文件内容的读取操作。

定义File

//相对路径的文件/文件夹示例
//绝对路径的文件/文件夹示例
File file = new File("文件的绝对或相对的路径");
//绝对路径文件
File absoluteFile = new File("C:\\JavaTest\\IOTest.java");
//相对路径文件
File relativeFile1 = new File("IOTest.java");
//相对路径文件
File relativeFile2 = new File(".\\IOTest.java");
//相对路径文件
File relativeFile3 = new File("..\\JavaTest\\IOTest.java");
  • 转义字符 \

在Java中因为 \ 是转义字符,因此需要对路径中的 \ 进行转义,所以需要两次 \ 才可以表示正确的路径。

  • 绝对路径

绝对路径表示文件从根目录开始的路径,Linux和Mac系统中的根目录一般是以 \ 开始,windows系统中的根目录一般是以 C:\、D:\、E:\ 等开始。

  • 相对路径

相对路径,如果直接写文件名或 .\文件名,则表示从运行文件的当前目录下查找,如果写…\则表示从上一级目录查找。

File的常用方法

获取文件信息

String getName()

返回File对象的文件或目录名

String tmp = file.getName();

String getPath()

返回File对象传入的路径

String tmp = file.getPath();

File getAbsoluteFile()

返回File对象的File类型的绝对路径

File tmp = file.getAbsoluteFile();

String getAbsolutePath()

返回File对象的绝对路径

String tmp = file.getAbsolutePath();

String getParent():返回文件对象的最后一级目录或目录对象的上一级目录

String tmp = file.getParent();

Long lastModified()

返回文件最后的修改时间

Long tmp = file.getModified();

Long length()

返回文件最后的长度

Long tmo = file.length();

String[] list()

返回File对象的所有子文件和目录(不包含子目录的子目录)

String[] list = file.list();

File[] listFile()

返回File对象的所有子文件和目录的File对象

File[] list = file.listFile(); 

static File[] listRoots()

返回所有根目录的File对象

File[] list = File.listRoots();

文件检测方法

boolean exists()

判断File对象对应的文件或目录是否存在

boolean tmp = file.exists();

boolean canWrite()

判断File对象对应的文件或目录是否可写

boolean tmp = file.canWrite();

boolean isFile()

判断File对象是否是文件

boolean tmp = file.isFile();

boolean isDirectory()

判断File对象是否是目录

boolean tmp = file.isDirectory();

boolean isAbsolute()

判断File帝乡是否是绝对路径

boolean tmp = file.isAbsolute();

文件或目录的操作方法

boolean createNewFile() throws IOException

File文件对象不存在时创建文件

boolean tmp = file.createNewFile();

boolean delete()

删除File所对应的文件或目录

boolean tmp = file.delete();

File createTmpFile(String prefix, String suffix) throws IOException

在系统默认的临时文件目录里创建一个空的临时文件。其中prefix为文件前缀且长度必须大于等于3,suffix为文件类型后缀,如果suffix为null,则采用系统默认的.tmp后缀。

File createTempFile(String prefix, String suffix, File directory) throws IOException

在指定的临时文件中创建一个临时的空文件,其它参数用法同上

File tmpFile1 = File.createTmpFile("文件前缀",".amt");
File tmpFile2 = File.createTmpFile("文件前缀",null,"C:/JavaTest");

void deleteOnExit()

当退出虚拟机时,系统自动删除File对应的文件或目录

file.deleteOnExit();

boolean mkdir()

创建File所对应的目录

boolean tmp = file.mkdir();

文件过滤器

String[] list(FilenameFilter filter)中可以接受一个FilenameFilter对象,用来只列出符合条件的文件或目录。
FilenameFilter里包含一个boolean accept(File dir, String name)方法,如果该方法返回true,则list会列出该子目录或文件。
同时,因为accept是唯一的一个抽象方法,因此可以使用lambda表达式进行书写。
下面一段代码表示输出目录或后缀名为.java的文件

 String url = "C:\\JavaTest";
 File file = new File(url);
 String[] list = file.list((File dir,String name)-> (name.endsWith(".java")&& new File(name).isFile()) || new  File(name).isDirectory());
 for(int i=0;i<list.length;i++){
      System.out.println(list[i]);
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值