File类(常用方法、遍历目录下的文件、listFiles()方法和删除文件及目录)
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()方法和删除文件及目录)相关推荐
- Java File类应用:递归遍历文件夹和递归删除文件
要求: 1)采用递归遍历文件夹下的所有文件,包括子文件夹下的文件 2)采用递归删除文件下的所有文件 注意: 以下递归删除文件的方法,只能删除文件,所有的文件夹都还会存在若要删除正文文件夹,可以在递归删 ...
- 进阶14 File类、遍历、递归
File类 概述 File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. java.io.File类 文件和目录路径名的抽象表示形式. java把电脑中的文件和文件夹( ...
- Java 基础进阶篇(十四):File 类常用方法
File 类的对象代表操作系统的文件(文件.文件夹),File 类在 java.io.File 包下. File 类提供了诸如:创建文件对象代表文件,获取文件信息(大小.修改时间).删除文件.创建文件 ...
- 详述java的File类常用方法
File类: File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作. File类构造方法: 常用的有三种: 1.File(String pathname):通过路径名 ...
- 安装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 ...
- linux 下删除批量文件命令,linux 批量删除文件与空文件删除命令linux操作系统 -电脑资料...
在linux中删除文件与删除目录及删除空文章都是使用rm 命令了,执行rm指令可删除文件或目录,如欲删除目录必须加上参数\"-r\",否则预设仅会删除文件,下面我来介绍在linux ...
- C盘目录下隐藏木马清除方法
例:C:\Windows\Fonts目录底下隐藏木马清除方法 1.打开命令提示符,目录切换到C:\Windows\Fonts目录底下,命令:cd C:\Windows\Fonts 2.查看该目录底下的 ...
- centos如何清理服务器日志文件,centos设置定时删除文件定时清理网站日志
1.进入linux系统 2.在任意目录创建一个sh后缀的文件,如: 3.编辑打开该文件,如图: 4.此时按键盘上的"i"键或者"insert"键,进入编辑模式 ...
- xshell删除文件夹命令_Linux删除文件的命令?
展开全部 1.删除文件命62616964757a686964616fe4b893e5b19e31333366303139令 rm -f 文件名 将会强行删除文件,且无提示 需要注意: 使用rm -rf ...
最新文章
- mysql top 语句简介
- 神经网络的反向传导到底是在干什么?
- Poj - 3254 Corn Fields (状压DP)(入门)
- RestTemplate入门案例
- oracle pr,PRMSCAN ORACLE碎片扫描合并工具
- opencv生成日志_OpenCV在Android环境下的使用方法
- 14家文化机构联合抖音、今日头条启动“都来读书”计划
- 吴恩达机器学习week2
- SpringBoot注解@Component、Repository、Service、Controller的含义
- 字符串匹配算法总结(转)
- ##CSP 201803-2 碰撞的小球(C语言)100分
- ArcGIS Bathymetry 管理水深数据的方法
- 1024程序员节:心疼被段子手黑得最惨的他们
- 快递 code与快递名称
- 2D转换及相关案例实现
- 神舟笔记本风扇声音很大怎么办
- 如何防止别人偷窥我给宝贝儿娜娜的信
- VCC、 VDD、VSS、VEE 电压符号的解释
- C语言赋值被截断,c语言中赋值截断
- 用python与openpyxl操作excel(wps excel与office excel均可使用)
热门文章
- linux shell curl get 请求头 和多参数问题及解决
- idea mac 查找文件快捷键_mac版idea常用快捷键
- 随时拉伸腰腿,缓解酸痛与疲劳
- 2021年质量员-市政方向-通用基础(质量员)最新解析及质量员-市政方向-通用基础(质量员)证考试
- 资源3(ZY3)号卫星NAD-FWD数据制作DEM
- 记录 设计+制作AA机台
- AB test 中的AA test有什么作用?
- SpringBoot+腾讯云实现短信发送
- android 内核调整工具,合理调校手机内核 让你的安卓手机更加流畅省电
- 产品经理岗位职责说明_关于医药冷链的一些思考——医药物流企业的岗位职责及任职要求精讲(一)...