当前位置: 首页 > news >正文

Java: File

1.File的概述和构造方法

  • File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
  • 这个路径可以是存在的,也允许是不存在的

File的构造方法

File的构造方法
方法名称说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent, String child)根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象

绝对路径是带盘符的。
相对路径是不带盘符的,默认到当前项目下去找。

2.File的常见的成员方法(判断、获取)

方法名称说明
public boolean isDirectory()判断此路径名表示的File是否为文件夹
public boolean isFile()判断此路径名表示的File是否为文件
public boolean exists()判断此路径名表示的File是否存在
public long length()返回文件的大小(字节数量)
public String getAbsolutePath()返回文件的绝对路径
public String getPath()返回定义文件时使用的路径
public String getName()返回文件的名称,带后缀
public long lastModified()返回文件的最后修改时间(时间毫秒值)
package com.dan.a01myfile; import java.io.File; public class FileDemo2 { public static void main(String[] args) { /** * public boolean isDirectory() 判断此路径名表示的File是否为文件夹 * public boolean isFile() 判断此路径名表示的File是否为文件 * public boolean exists() 判断此路径名表示的File是否存在 */ //1.对一个文件的路径进行判断 File f1 = new File("D:\\girl.jpg"); System.out.println(f1.isDirectory()); System.out.println(f1.isFile()); System.out.println(f1.exists()); System.out.println("---------------------------"); //2.对一个文件夹的路径进行判断 File f2 = new File("D:\\study_demo"); System.out.println(f2.isDirectory()); System.out.println(f2.isFile()); System.out.println(f2.exists()); System.out.println("---------------------------"); //3.对一个不存在的路径进行判断 File f3 = new File("D:\\aaaa\\a.text"); System.out.println(f3.isDirectory()); System.out.println(f3.isFile()); System.out.println(f3.exists()); } }

package com.dan.a01myfile; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class FileDemo3 { public static void main(String[] args) { /** * public long length() 返回文件的大小(字节数量) * public String getAbsolutePath() 返回文件的绝对路径 * public String getPath() 返回定义文件时使用的路径 * public String getName() 返回文件的名称,带后缀 * public long lastModified() 返回文件的最后修改时间(时间毫秒值) */ //1.length()返回文件的大小(字节数量) //细节1:这个方法只能获取文件的大小,单位是字节 //如果单位想要是mb或者G,自己可以不断除以1024 //细节2:这个方法无法获取文件夹的大小 //如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小累加到一起 File f1 = new File("D:\\girl.jpg"); long len = f1.length(); System.out.println(len/1024/1024 + "mb");//3mb File f2 = new File("D:\\study_demo"); long len2 = f2.length(); System.out.println(len2);//8192不是真实文件夹大小 System.out.println("-------我是分割线--------"); //2.public String getAbsolutePath() 返回文件的绝对路径 String path1 = f1.getAbsolutePath(); System.out.println(path1); File f3 = new File("myfile\\a.text"); String path2 = f3.getAbsolutePath(); System.out.println(path2); //3. public String getPath() 返回定义文件时使用的路径 String path3 = f3.getPath(); System.out.println(path3);//就是定义f1这个变量时候用的路径 //4.public String getName() 返回文件的名称,带后缀 String name = f3.getName(); System.out.println(name); //5.public long lastModified() 返回文件的最后修改时间(时间毫秒值) long time = f1.lastModified(); System.out.println(time); //如何把时间的毫秒值变成字符串表示时间呢 //课堂练习: //yyyy年MM月dd日HH:mm:ss // 1. 把毫秒值转成 Date 对象 Date date = new Date(time); // 2. 指定格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); // 3. 格式化 String timeStr = sdf.format(date); // 输出结果 System.out.println(timeStr); } }


3.File的常见的成员方法(创建、删除)

方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()创建单级文件夹
public boolean mkdirs()创建多级文件夹
public boolean delete()删除文件、空文件夹

重点:delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站

package com.dan.a01myfile; import java.io.File; import java.io.IOException; public class FileDemo4 { public static void main(String[] args) throws IOException { /** * public boolean createNewFile() 创建一个新的空的文件 * public boolean mkdir() 创建单级文件夹 * public boolean mkdirs() 创建多级文件夹 * public boolean delete() 删除文件、空文件夹 */ //1.createNewFile() 创建一个新的空的文件 //细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true // 如果当前路径表示的文件是存在的,则创建失败,方法返回false //细节2:如果父级路径是不存在的,那么方法会有异常IOException //细节3:createNewFile方法创建的一定是文件,如果路径不包含后缀名,则创建一个没有后缀的文件 File f1 = new File("D:\\study_demo\\a.text"); boolean b = f1.createNewFile(); System.out.println(b); //2.mkdir make Directory 创建单级文件夹(目录) //细节1:windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false //细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹 File f2 = new File("D:\\aaa"); boolean b2 = f2.mkdir(); System.out.println(b2); //3.mkdirs 创建多级文件夹 File f3 = new File("D:\\aaa\\bbb\\ccc"); boolean b3 = f3.mkdirs(); System.out.println(b3); //4.delete 删除文件、空文件夹 boolean b4 = f1.delete(); System.out.println(b4); } }
细节://1.createNewFile() 创建一个新的空的文件 //细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true // 如果当前路径表示的文件是存在的,则创建失败,方法返回false //细节2:如果父级路径是不存在的,那么方法会有异常IOException //细节3:createNewFile方法创建的一定是文件,如果路径不包含后缀名,则创建一个没有后缀的文件
//2.mkdir make Directory 创建单级文件夹(目录) //细节1:windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false //细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹 //3.mkdirs 创建多级文件夹(目录) //细节:可以创建单级文件夹目录,因为该方法底层调用了mkdir

4.File的常见成员方法(获取并遍历)

方法名称说明
public static File[ ] listRoots()列出可用的文件系统根
public String[ ] list()获取当前该路径下所有内容
public String[ ] list(FilenameFilter filter)利用文件名过滤器获取当前该路径下所有内容
public File[ ] listFiles()获取当前该路径下所有内容
public File[ ] listFiles(FileFilter filter)利用文件名过滤器获取当前该路径下所有内容
public File[ ] listFiles(FilenameFilter filter)利用文件名过滤器获取当前该路径下所有内容

除了listFiles,其他的了解一下,能看懂就行

public File[ ] listFiles()获取当前该路径下的所有内容(File中最重要的一个方法)

  • 当调用者File表示的路径不存在时,返回null
  • 当调用者File表示的路径是文件时,返回null
  • 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
  • 当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

http://www.jsqmd.com/news/636052/

相关文章:

  • 前端创新技术探索
  • LeetCode Hot100 - 4. 移动零(Java 题解)
  • 009、Python流程控制:条件判断(if/elif/else)
  • 函数用法记录——MATLAB符号计算
  • uniapp Uview框架中u-search组件实现动态搜索与数据过滤
  • Tiktokenizer高性能架构设计:深入解析Token可视化引擎的实现原理
  • WPF DataContext实战:三种绑定方式深度解析
  • 构建“私有第二大脑”:基于 Graph-RAG 的本地知识图谱 Agent 搭建指南
  • OpenClaw:AI Agent引擎驱动的企业全流程智能助手
  • “一眼识万物”:用Rokid AI Glasses与灵珠平台打造植物百科助手
  • AIAgent为何总“好心办坏事”?SITS2026首席科学家解密价值对齐的5个隐性断层及实时干预协议
  • mPDF终极指南:PHP PDF生成库的深度技术解析与实战应用
  • 【RJ 45连接器】RJ45 网络连接器 3D 模型 3 零件装配体 SolidWorks 源文件 含 STEP/IGS 通用格式
  • Python 函数完全指南:参数、返回值与高级用法
  • 告别模糊截图:html-to-image 终极高清图像生成指南
  • PCILeech DMA攻击工具深度实战指南:掌握无驱动内存取证核心技术
  • 网络攻防实践五 20252901程宇
  • 终极指南:使用icloudpd命令行工具轻松备份你的iCloud照片库
  • OpCore Simplify终极指南:三分钟完成黑苹果完美配置
  • 运维怎么转行网络安全?(非常详细)从零基础入门到精通,收藏这一篇就够了
  • Python GUI程序怎么避免卡顿_利用多线程实现后台异步处理
  • C++ string类
  • 360Controller:macOS平台Xbox游戏控制器驱动深度解析与实战指南
  • 如何通过Java程序监控Oracle表空间_JDBC定时执行巡检SQL并推送报警指标
  • 别急着换卡!双T4虚拟机掉卡报错RmInitAdapter failed,我的排查思路和重启大法复盘
  • Chinook数据库:一站式多数据库平台教学与测试解决方案
  • FOC电流采样实战:从采样电阻到ADC的完整信号链设计
  • 3步解锁B站AI视频总结:让学习效率飙升300%的秘密武器
  • Palantir实战指南:单细胞转录组拟时分析的Python实现与优化
  • 重新定义Windows字体个性化:No!! MeiryoUI深度解析与使用指南