File类

File类的常用方法

Filie类常用的构造方法

File(String pathname)              //通过指定的一个字符串类型的文件路径来创建一个新的File对象
File(String parent,String child)  //通过指定的一个字符串类型的父路径和一个字符串类型的子路径(包括文件名称)创建一个File对象
File(File parent,String child)    //根据指定的File类的父路径和字符串类型的子路径(包括文件的名称)创建一个File对象

File类常用的方法,如下代码:

package com.Put;
import java.io.*;public class IO {public static void main(String[] args) throws Exception{//创建File对象File file = new File("example.txt");System.out.println("文件的名称:"+file.getName());System.out.println("文件的相对路径:"+file.getPath());System.out.println("文件的绝对路径:"+file.getAbsolutePath());System.out.println("文件的父路径:"+file.getParent());System.out.println(file.canRead() ? "文件可读" : "文件不可读");System.out.println(file.canWrite() ? "文件可写" : "文件不可写");System.out.println(file.isFile() ? "是一个文件" : "不是一个文件");System.out.println(file.isDirectory() ? "是一个目录" : "不是一个目录");System.out.println(file.isAbsolute() ? "是绝对路径" : "不是绝对路径");System.out.println("最后修改时间为:"+file.lastModified());System.out.println("文件大小为:"+file.length()+"byte");}
}

运行结果为:

文件的名称:example.txt
文件的相对路径:example.txt
文件的绝对路径:E:\Idea\JavaSE\example.txt
文件的父路径:null
文件可读
文件可写
是一个文件
不是一个目录
不是绝对路径
最后修改时间为:1628167368489
文件大小为:4byte
遍历目录下的文件
  • File类中有一个list()方法,用于遍历某个指定目录下的所有文件的名称,代码如下:
package com.Put;
import java.io.*;
import java.util.Arrays;public class IO {public static void main(String[] args) throws Exception{//创建File对象File file = new File("E:\\Idea\\JavaSE\\重新学习");//判断是否时目录if (file.isDirectory()){//获取目录下的所有文件的名称String[] fileNames = file.list();//对指定路径下的文件或目录进行遍历Arrays.stream(fileNames).forEach(f -> System.out.println(f));}}
}

效果展示:

简述:最后通过数组工具类Arrays的stream()方法将数组先转换为Stream流并进行遍历,依次打印出每个文件的文件名

获取指定路径下的文件:

File类提供了一个重载的list(FilenameFilter filter)方法,该方法接收一个FilenameFilter接口类型的参数。FilenameFilter是一个函数式接口,被称作文件过滤器,接口中定义了一个抽象方法accept(File dir,String name)用于依次对指定的File的所有子目录或文件进行迭代。在调用list(FilenameFilter filter)方法时,需要实现过滤器FilenameFilter,并在accept(File dir,String name)方法中进行筛选,从而获得指定类型的文件

package com.Put;
import java.io.*;
import java.util.Arrays;public class IO {public static void main(String[] args) throws Exception{//创建File对象File file = new File("E:\\Idea\\JavaSE\\重新学习\\src");//File file = new File("E:\\Idea\\JavaSE\\重新学习\\src\\com\\Demo01");//判断是否时目录if (file.isDirectory()){//获取目录下的所有文件的名称String[] fileNames = file.list(((dir, name) -> name.endsWith(".txt")));//String[] fileNames = file.list(((dir, name) -> name.endsWith(".java")));//对指定路径下的文件或目录进行遍历Arrays.stream(fileNames).forEach(f -> System.out.println(f));}}
}

运行结果:

简述:

调用list(FilenameFilter filter)方法时传入了一个lambda表达式形式的参数,该参数实现了函数式接口filenameFilter中的accept(File dir,String name)方法,然后数组工具类Arrays的stream()方法将数组先转换为Stream流并进行遍历

listFiles()方法返回一个File对象的数组,当对数组中的元素进行遍历时,如果元素中有子文件需要遍历,则可以使用"“递归”"再次遍历子目录

代码如下:

package com.Put;
import java.io.*;public class IO {public static void main(String[] args) throws Exception {//创建File对象File file = new File("E:\\Idea\\JavaSE\\重新学习");//调用fileDir方法,遍历目录fileDir(file);}//遍历目录及其子目录public static void fileDir(File file){//获取目录下所有的文件,并赋给数组File[] listFiles = file.listFiles();//循环遍历数组for (File files:listFiles) {//如果遍历的时目录,则递归调用fileDir()方法if (files.isDirectory()){fileDir(files);}//输出文件的路径System.out.println(files);}}}

简述:

定义了一个静态方法fileDir()用于接收一个目录下的File对象。在方法中,首先通过调用listFiles()方法把该目录下所有子文件和文件存到一个File类型的数组listFiles中,接着遍历数组listFiles并对当前遍历的File对象进行判断,如果是目录就递归调用fileDir()方法进行子目录遍历,如果是文件就直接打印输出文件的路径,这样该目录下的所有子文件就被成功遍历出来了

删除文件及目录

不要尝试,跟遍历目录下的文件原理差不多,了解即可

package com.Put;
import java.io.*;public class IO {public static void main(String[] args) throws Exception {//创建File对象File files = new File("E:\\Idea\\JavaSE\\重新学习");//调用deleteDir方法deleteDir(files);}//删除方法public static void deleteDir(File files){//获取File对象中所有的文件,并赋给数组File[] listFiles = files.listFiles();//循环遍历数组for (File file:listFiles) {//如果遍历的时目录,则递归调用deleteDir方法if (files.isDirectory()){deleteDir(file);}//如果是文件,则删除file.delete();}//删除文件夹内的所有文件后,再删除文件夹files.delete();}}

File类(常用方法、遍历目录下的文件、listFiles()方法和删除文件及目录)相关推荐

  1. Java File类应用:递归遍历文件夹和递归删除文件

    要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...

  2. 进阶14 File类、遍历、递归

    File类 概述 File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. java.io.File类 文件和目录路径名的抽象表示形式. java把电脑中的文件和文件夹( ...

  3. Java 基础进阶篇(十四):File 类常用方法

    File 类的对象代表操作系统的文件(文件.文件夹),File 类在 java.io.File 包下. File 类提供了诸如:创建文件对象代表文件,获取文件信息(大小.修改时间).删除文件.创建文件 ...

  4. 详述java的File类常用方法

    File类: File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作. File类构造方法: 常用的有三种: 1.File(String pathname):通过路径名 ...

  5. 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 解决-The MySQL server is running with the --secure-file-priv

    WIN10 系统环境 安装mysql后在安装目录下只有my-default.ini没有my.ini文件 . mysql报错 ---------- The MySQL server is running ...

  6. linux 下删除批量文件命令,linux 批量删除文件与空文件删除命令linux操作系统 -电脑资料...

    在linux中删除文件与删除目录及删除空文章都是使用rm 命令了,执行rm指令可删除文件或目录,如欲删除目录必须加上参数\"-r\",否则预设仅会删除文件,下面我来介绍在linux ...

  7. C盘目录下隐藏木马清除方法

    例:C:\Windows\Fonts目录底下隐藏木马清除方法 1.打开命令提示符,目录切换到C:\Windows\Fonts目录底下,命令:cd C:\Windows\Fonts 2.查看该目录底下的 ...

  8. centos如何清理服务器日志文件,centos设置定时删除文件定时清理网站日志

    1.进入linux系统 2.在任意目录创建一个sh后缀的文件,如: 3.编辑打开该文件,如图: 4.此时按键盘上的"i"键或者"insert"键,进入编辑模式 ...

  9. xshell删除文件夹命令_Linux删除文件的命令?

    展开全部 1.删除文件命62616964757a686964616fe4b893e5b19e31333366303139令 rm -f 文件名 将会强行删除文件,且无提示 需要注意: 使用rm -rf ...

最新文章

  1. mysql top 语句简介
  2. 神经网络的反向传导到底是在干什么?
  3. Poj - 3254 Corn Fields (状压DP)(入门)
  4. RestTemplate入门案例
  5. oracle pr,PRMSCAN ORACLE碎片扫描合并工具
  6. opencv生成日志_OpenCV在Android环境下的使用方法
  7. 14家文化机构联合抖音、今日头条启动“都来读书”计划
  8. 吴恩达机器学习week2
  9. SpringBoot注解@Component、Repository、Service、Controller的含义
  10. 字符串匹配算法总结(转)
  11. ##CSP 201803-2 碰撞的小球(C语言)100分
  12. ArcGIS Bathymetry 管理水深数据的方法
  13. 1024程序员节:心疼被段子手黑得最惨的他们
  14. 快递 code与快递名称
  15. 2D转换及相关案例实现
  16. 神舟笔记本风扇声音很大怎么办
  17. 如何防止别人偷窥我给宝贝儿娜娜的信
  18. VCC、 VDD、VSS、VEE 电压符号的解释
  19. C语言赋值被截断,c语言中赋值截断
  20. 用python与openpyxl操作excel(wps excel与office excel均可使用)

热门文章

  1. linux shell curl get 请求头 和多参数问题及解决
  2. idea mac 查找文件快捷键_mac版idea常用快捷键
  3. 随时拉伸腰腿,缓解酸痛与疲劳
  4. 2021年质量员-市政方向-通用基础(质量员)最新解析及质量员-市政方向-通用基础(质量员)证考试
  5. 资源3(ZY3)号卫星NAD-FWD数据制作DEM
  6. 记录 设计+制作AA机台
  7. AB test 中的AA test有什么作用?
  8. SpringBoot+腾讯云实现短信发送
  9. android 内核调整工具,合理调校手机内核 让你的安卓手机更加流畅省电
  10. 产品经理岗位职责说明_关于医药冷链的一些思考——医药物流企业的岗位职责及任职要求精讲(一)...