File类

2023-11-02

一.概述

1.File在包java.io.File下,代表系统的文件对象(文件,文件夹)

File提供了诸如,定位文件获取文件本身的信息,删除文件,创建文件(文件夹)等功能。

File创建对象有三种方法,第一种最为方便,其他两种只要没点大病都不会用。

File f1 = new File("  D:/hong/海绵hong.java");
        System.out.println(f1);

        File f2 = new File("  D:/hong", "海绵hong.java");
        System.out.println(f2);

        File f3 = new File("  D:/hong");
        File f4 = new File(f3, "海绵hong.java");
        System.out.println(f4);

File对象可以定位文件和文件夹。

File封装的对象仅仅是一个路径名,这个路径可以是真正存在的,也可以是真正不存在的。

2.绝对路径和相对路径

绝对路径:带盘符,从盘符开始,依赖当前系统。

相对路径:没用盘符,默认在当前工程的目录下寻找文件。

二.File类的创建和删除的方法
     - public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,
              创建一个新的空文件。 (几乎不用的,因为以后文件都是自动创建的!)
     - public boolean delete() :删除由此File表示的文件或目录。 (只能删除空目录)
     - public boolean mkdir() :创建由此File表示的目录。(只能创建一级目录)
     - public boolean mkdirs() :可以创建多级目录(建议使用的)

   public static void main(String[] args) throws IOException {
        File f = new File("file-io-app\\src\\data.txt");
        // a.创建新文件,创建成功返回true ,反之 ,不需要这个,以后文件写出去的时候都会自动创建
        System.out.println(f.createNewFile());
        File f1 = new File("file-io-app\\src\\data02.txt");
        System.out.println(f1.createNewFile()); // (几乎不用的,因为以后文件都是自动创建的!)

        // b.mkdir创建一级目录
        File f2 = new File("D:/resources/aaa");
        System.out.println(f2.mkdir());

        // c.mkdirs创建多级目录(重点)
        File f3 = new File("D:/resources/ccc/ddd/eee/ffff");
//        System.out.println(f3.mkdir());
        System.out.println(f3.mkdirs()); // 支持多级创建

        // d.删除文件或者空文件夹
        System.out.println(f1.delete());
        File f4 = new File("D:/resources/xueshan.jpeg");
        System.out.println(f4.delete()); // 占用一样可以删除

        // 只能删除空文件夹,不能删除非空文件夹.
        File f5 = new File("D:/resources/aaa");
        System.out.println(f5.delete());
    }

三.File类的获取功能的API

  - public String getAbsolutePath()  :返回此File的绝对路径名字符串。
     - public String getPath()  : 获取创建文件对象的时候用的路径
     - public String getName()  : 返回由此File表示的文件或目录的名称。
     - public long length()  :    返回由此File表示的文件的长度。

 public static void main(String[] args) {
        // 1.绝对路径创建一个文件对象
        File f1 = new File(" D:/hong/海绵hong.java");
        // a.获取它的绝对路径。
        System.out.println(f1.getAbsolutePath());
        // b.获取文件定义的时候使用的路径。
        System.out.println(f1.getPath());
        // c.获取文件的名称:带后缀。
        System.out.println(f1.getName());
        // d.获取文件的大小:字节个数。
        System.out.println(f1.length()); // 字节大小
        // e.获取文件的最后修改时间
        long time = f1.lastModified();
        System.out.println("最后修改时间:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time));
        // f、判断文件是文件还是文件夹
        System.out.println(f1.isFile()); // true
        System.out.println(f1.isDirectory()); // false

        System.out.println("-------------------------");

        File f2 = new File("file-io-app\\src\\data.txt");
        // a.获取它的绝对路径。
        System.out.println(f2.getAbsolutePath());
        // b.获取文件定义的时候使用的路径。
        System.out.println(f2.getPath());
        // c.获取文件的名称:带后缀。
        System.out.println(f2.getName());
        // d.获取文件的大小:字节个数。
        System.out.println(f2.length()); // 字节大小
        // e.获取文件的最后修改时间
        long time1 = f2.lastModified();
        System.out.println("最后修改时间:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time1));
        // f、判断文件是文件还是文件夹
        System.out.println(f2.isFile()); // true
        System.out.println(f2.isDirectory()); // false
        System.out.println(f2.exists()); // true

        File file = new File("D:/");
        System.out.println(file.isFile()); // false
        System.out.println(file.isDirectory()); // true
        System.out.println(file.exists()); // true

        File file1 = new File("D:/aaa");
        System.out.println(file1.isFile()); // false
        System.out.println(file1.isDirectory()); // false
        System.out.println(file1.exists()); // false

    }

四.File针对目录的遍历
    - public String[] list():
         获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
    - public File[] listFiles()(常用):
         获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

public static void main(String[] args) {
        // 1、定位一个目录
        File f1 = new File("D:/resources");
        String[] names = f1.list();
        for (String name : names) {
            System.out.println(name);
        }

        // 2.一级文件对象
        // 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        File[] files = f1.listFiles();
        for (File f : files) {
            System.out.println(f.getAbsolutePath());
        }

        // 注意事项
        File dir = new File("D:/resources/ddd");
        File[] files1 = dir.listFiles();
        System.out.println(Arrays.toString(files1));
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

File类 的相关文章

随机推荐

  • UE5关于高亮显示物体轮廓线

    描边材质如果是透明的话 不会显示描边 材质参数勾选 允许自定义深度写入 即可 材质参考这个文章 https blog csdn net Axiang 0123 article details 121168272 ops request mi
  • 多标签分类怎么做?教你4招

    首先简单介绍下 多标签分类与多分类 多任务学习的关系 多分类学习 Multi class 分类器去划分的类别是多个的 但对于每一个样本只能有一个类别 类别间是互斥的 例如 分类器判断这只动物是猫 狗 猪 每个样本只能有一种类别 就是一个三分
  • iview表格单元格动态绑定class/style,不刷新表格本身.

    对订单表格的时间列 动态检验时间是否过期并用颜色标记 关键点是在render中的渲染函数动态绑定class style 小问题是表格数据本身是确定的不再变化 我们又需要跟随时间变化 所以首选需要一个定时器 定时器不能放在表格里会导致计时器不
  • 我的第一个小爬虫程序-python

    爬什么 爬代理服务器网站的服务器 端口 代理种类 所在地区 更新日期 今日评分 总的评分 可用 速度测评信息 这样的网页有七八个 好在网址明名很规则 具体说就是爬很多的这样的html代码里的信息 span class tbBottomLin
  • 【论文】AMC:AutoML用于移动设备上的模型压缩和加速

    摘要 模型压缩是在计算资源有限且功率预算紧张的移动设备上高效部署神经网络模型的有效技术 传统的模型压缩技术依赖于手工制作的特性 需要领域专家在模型大小 速度和精度之间进行权衡 以探索大的设计空间 这通常是次优和耗时的 在本文中 我们提出了用
  • 不想安装环境,我如何与前端工程师远程协作开发?

    最近我的一名前端工程师朋友Wendy正基于自己的想法开发一个开源项目 为了让用户了解并试用项目 她准备用Nextjs这个前端框架搭建一个用户使用手册网站 写文档的时候 她想到了我这个产品经理朋友 希望我能够帮助她一起开发这个网站 提供更好的
  • 【Qt/C++异常笔记】“QHostInfo”: 不是类或命名空间名称

    文章目录 异常描述 异常原因 解决方法 开发环境 异常描述 在读取主机名称时 需要用到 QHostInfo localHostName 但是使用了之后一直报错 QHostInfo 不是类或命名空间名称 头文件中引用 include
  • 《数据结构与算法》实验:图结构的建立与搜索

    数据结构与算法 实验和课程Github资源 数据结构与算法 实验 线性结构及其应用 算术表达式求值 数据结构与算法 实验 树型结构的建立与遍历 数据结构与算法 实验 图结构的建立与搜索 数据结构与算法 实验 查找结构的实验比较 二叉查找树B
  • 图的m着色问题(第十二次实验)

    图的m着色问题 问题 图的m着色问题 给定无向连通图G和m种颜色 用这些颜色给图的顶点着色 每个顶点一种颜色 如果要求G的每条边的两个顶点着不同颜色 给出所有可能的着色方案 如果不存在 则回答 NO 解析 图着色问题描述为 给定无向连通图G
  • Qt开发之QTableWidget

    QTableWidget从继承QTableView 实质属于模型 视图范畴之内 只是带了默认模型 model 基于项目 item 的表格视图控件 我们不需要实现model内的数据加工 QTableWidget为应用程序提供了标准的表显示工具
  • 【MybBatis高级篇】MyBatis 拦截器

    MybBatis高级篇 MyBatis 拦截器 拦截器介绍 实现拦截器 注册拦截器 应用 yml DynamicSql Dao 层代码 xml 启动类 拦截器核心代码 代码测试 拦截器应用场景 MyBatis 是一个流行的 Java 持久层
  • python数据分析与可视化——第二章实训

    1 读取数据 import csv f open F 专业课程作业 python时空数据分析与可视化 white wine csv r 定义读取器 reader csv reader f data 定义列表存储读取的数据 for row i
  • UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图

    统一建模语言 Unified Modeling Language UML 是一种为面向对象系统的产品进行说明 可视化和编制文档的一种标准语言 是非专利的第三代建模和规约语言 UML是面向对象设计的建模工具 独立于任何具体程序设计语言 1 U
  • C基础day3(2023.7.3)

    一 Xmind整理 二 作业 1 include
  • Ubuntu下muduo库安装和配置到系统环境

    1 本次安装通过源码安装 在安装之前必须要安装git 系统是Ubuntu muduo库源码github仓库地址 https github com chenshuo muduo 2 git 安装 sudo apt get install gi
  • [架构之路-192]-《软考-系统分析师》-8-软件工程 - 14种UML图快速概览

    目录 第1章 UML概述 1 1 什么是UML 1 2 为什么要用UML 1 3 UML图有哪些 1 4 UML图概览 第2章 UML图示 2 1 静态图 结构图 什么是类图 泛化 Generalization 实现 Realization
  • 投资人热捧的创业大赛,有哪些AI原生应用值得关注?

    绝对远超全球同类产品 一位大模型创业者对百度文心一言的表现不吝夸奖 这是一家生产效率工具创业公司的负责人 今年5月百度发起大模型领域创业比赛 文心杯 他率先报名参赛并入选决赛文心创业营 目前与其他30多家入围企业一起 正基于百度文心大模型构
  • linux中init.d文件夹的说明

    一 简单说明 etc init d 是 etc rc d init d 的软链接 soft link 可以通过 ll 命令查看 ls ld etc init d lrwxrwxrwx 1 root root 11 Aug 30 2015 e
  • window.open()的替代方法

    window open 是被很多杀毒软件禁止的弹出框方式 所以可以采用form post的方式来打开 function OpenWindByPost window top location ctx page confirm confirmT
  • File类

    一 概述 1 File在包java io File下 代表系统的文件对象 文件 文件夹 File提供了诸如 定位文件获取文件本身的信息 删除文件 创建文件 文件夹 等功能 File创建对象有三种方法 第一种最为方便 其他两种只要没点大病都不