Java——IO流(一)-(2/9):File类的常用方法(判断文件类型、获取文件信息、创建删除文件、遍历文件夹)

目录

常用方法1:判断文件类型、获取文件信息

方法

实例演示

常用方法2:创建文件、删除文件

方法

实例演示

常用方法3:遍历文件夹

方法

实例演示


常用方法1:判断文件类型、获取文件信息

方法

File提供的判断文件类型、获取文件信息功能

方法名称说明
public boolean exists()判断当前文件对象,对应的文件路径是否存在,存在返回true。
public boolean isFile()判断当前文件对象指代的是否是文件,是文件返回true,反之。
public boolean isDirectory()判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
public String getName()获取文件的名称(包含后缀)。
public long length()获取文件的大小,返回字节个数。
public long lastModified()获取文件的最后修改时间。
public String getPath()获取创建文件对象时,使用的路径。
public String getAbsolutePath()获取绝对路径。

实例演示

import java.io.File;
import java.text.SimpleDateFormat;

public class FileTest2 {
    public static void main(String[] args) {
        //1.创建文件对象,指代某个文件
        File f1 = new File("E:/Programme/Java/acc.txt");

        //2.判断当前文件对象,对应的文件路径是否存在,存在返回true
        System.out.println(f1.exists());                    //true

        //3.判断当前文件对象指代的是否是文件,是文件返回true
        System.out.println(f1.isFile());                    //true

        //4.判断当前文件对象指代的是否是文件夹
        System.out.println(f1.isDirectory());               //false

        //5.获取文件的名称(包含后缀)
        System.out.println(f1.getName());                   //acc.txt

        //6.获取文件的大小,返回字节个数
        System.out.println(f1.length());                    //6

        //7.获取文件的最后修改时间,返回的是长整型,需要转换格式
        long time = f1.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println(sdf.format(time));

        //8.获取创建文件对象时所使用的路径
        File f2 = new File("E:/Programme/Java/abc.txt");
        File f3 = new File("HelloWorld/src/file.txt");
        System.out.println(f2.getPath());
        System.out.println(f3.getPath());

        //9.获取绝对路径
        System.out.println(f2.getAbsolutePath());
        System.out.println(f3.getAbsolutePath());
    }
}

运行结果:

常用方法2:创建文件、删除文件

方法

File类创建文件的功能

方法名称说明
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()只能创建一级文件夹
public boolean mkdirs()可以创建多级文件夹

File类删除文件的功能

方法名称说明
public boolean delete()删除文件、空文件夹

注意delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。

实例演示

import java.io.File;
import java.io.IOException;

public class FileTest3 {
    public static void main(String[] args) throws IOException {
        //1.创建一个新文件(文件内容为空),创建成功返回true,反之。
        File f1 = new File("E:/Programme/Java/aaa.txt");
        System.out.println(f1.createNewFile());                         //true

        //2.创建文件夹,注意:只能创建一级文件夹
        File f2 = new File("E:/Programme/Java/aaa");
        System.out.println(f2.mkdir());                                 //true

        //3.创建多级文件夹,也就是相当于递归创建文件夹
        File f3 = new File("E:/Programme/Java/bbb/ccc/ddd");
        System.out.println(f3.mkdirs());                                //true
    
    }
}

运行结果:

import java.io.File;
import java.io.IOException;

public class FileTest3 {
    public static void main(String[] args) throws IOException {
        //4.删除文件,或者空文件夹,注意:不能删除非空文件夹。
        System.out.println(f1.delete());                                //true
        System.out.println(f2.delete());                                //true
    }
}

运行结果:

常用方法3:遍历文件夹

方法

File类提供的遍历文件夹的功能

方法名称说明
public String[] list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
public File[] listFiles()获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

使用listFile方法时的注意事项

  • 当主调是文件,或者路径不存在时,返回null
  • 当主调是空文件夹时,返回一个长度为0的数组
  • 当主调是一个有内容的文件夹时,将里面所有一级文件和文件夹的路径放在File数组中返回
  • 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当主调是一个文件夹,但是没有权限访问该文件夹时,返回null

实例演示

import java.io.File;

public class FileTest4 {
    public static void main(String[] args) {
        //1.获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
        File f1 = new File("E:/Programme/vs2019");
        String[] names = f1.list();
        for(String name:names){
            System.out.println(name);
        }
        System.out.println("---------------------");
        //2.获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        File[] files = f1.listFiles();
        for(File file:files){
            System.out.println(file.getAbsolutePath());
        }
    }
}

运行结果:


END


学习自:黑马程序员——Java课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/695344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构(邓俊辉)学习笔记】图06——最小支撑树

文章目录 0. 概述1. 支撑树2. 最小支撑树3. 歧义性4. 蛮力算法5. Prim算法5.1 割与极短跨越边5.2 贪心迭代5.3 实例5.4 实现5.5 复杂度 0. 概述 学习下最小支撑树和prim算法。 1. 支撑树 最小的连通图是树。 连通图G的某一无环连通子图T若覆盖G中所有的顶点,则称…

将克隆到本地的6.824项目上传到自己的github

前置知识见:把自己在本地完成的mit6.s081项目上传到自己的github仓库里_mit6.s081 lab上传-CSDN博客 先在github建立一个自己的仓库 由于github可以给自己的主分支改名了,我这次是勾选了创建README文件 在本地同样是建立一条remote分支 git remote add…

机器学习-- 如何清洗数据集

文章目录 引言:数据清洗的具体步骤数据清洗的具体方法和示例1. 处理缺失值2. 去除重复数据3. 修正数据格式4. 处理异常值5. 标准化和归一化6. 处理不一致的数据7. 转换数据类型8. 数据集成 总结 引言: 数据清洗是数据处理和分析的关键步骤,旨…

MLU370-M8 chattts-ui快速出击

目录 一、paas平台环境选择二、代码环境准备1.代码下载2.环境安装modelsopetransformersaccelerate 3.常规pip安装4.代码修改4.代码修改 三.算法启动 一、paas平台环境选择 驱动选择:5.10.22及以上 镜像选择:pytorch2.1 二、代码环境准备 1.代码下载…

macOS - 终端快捷键

本文转自 Mac 上“终端”中的键盘快捷键 https://support.apple.com/zh-cn/guide/terminal/trmlshtcts/mac 以下基于系统版本 macOS Sonoma 14 文章目录 Mac 上“终端”中的键盘快捷键1、使用“终端”窗口和标签页2、编辑命令行3、在“终端”窗口中选择和查找文本4、使用标记和…

UE5基础1-下载安装

目录 一.下载 二.安装 三.安装引擎 四.其他 简介: UE5(Unreal Engine 5)是一款功能极其强大的游戏引擎。 它具有以下显著特点: 先进的图形技术:能够呈现出令人惊叹的逼真视觉效果,包括高逼真的光影、材…

《Brave New Words 》3.4 最重要的学科领域

Part III Empowering the Next Innovators 第三部分 赋能下一代创新者 The Most Important Subject-Matter Domain to Master 最重要的学科领域 In the world of education, it’s crucial for developers to field-test their ideas. Essentially, it means taking our educat…

导数和微分

导数和微分 flyfish 本文主要论述其中的区别 导数是描述函数变化率的量,它表示函数在某点的瞬时变化速度和切线斜率。 微分是导数的一个线性近似,表示函数在某点处随着自变量变化的增量。 导数和微分在本质上都是研究函数变化的工具,但导数…

西门子学习笔记11 - PTO脉冲指令的使用

1、使用指令前的设置 1、打开一个脉冲发生器,并启用 2、选择使用PTO(脉冲A和方向B) 3、硬件设置输出 4、这样前期的准备工作就完成了 2、指令的使用 1、添加指令CTRL_PTO 2、配置如下 3、方向控制程序如下 4、最后进行测试即可

总结【GetHub的WebAPI,ASSET_ID】,【Linux的jq命令】(草稿版+实际操作)

目录 1.介绍一下github中的 asset_id 2. GitHub 的 asset_id相关操作 2.1.获取特定 repository 的 release 列表: 2.2.获取特定 release 中的 asset 列表,并找到 asset_id: 2.3.使用ASSET_ID获取资材 3.返回的 assets 的信息 是什么样样…

AI 大模型重点行业应用情况

1、AI 大模型重点行业应用情况总览 AI大模型将率先在互联网办公、金融等数字化程度较高的行业快速渗透,医疗、交通、 制造等行业的潜在渗透空间大。 2、AI 大模型在金融行业应用情况 金融行业的应用场景丰富,是最早进行数字化转型的机构,因此…

抛弃昂贵BI,企业仍可低成本实现数据分析

有的读者看完《BI工具选型不入坑,你要这么选》这篇文章就陷入迷茫了,我要做企业级数据分析,看过去各家产品都各有千秋,实在难以抉择,或者已经选了仍是纠结不已。 这里我抛出另一种思路:如果不用BI&#xf…

定时器中断计数

1.定时器中断配置步骤 (1)RCC开启时钟。 (2)选择时基单元的时钟源(内部时钟源)。 (3)配置时基单元:预分频器、自动重装器、计数模式等。 (4)配…

[Mdfs] lc3067. 在带权树网络中统计可连接服务器对数目(邻接表+图操作基础+技巧+好题)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:3067. 在带权树网络中统计可连接服务器对数目 2. 题目解析 挺有意思的一道题目,重点是要能够读懂题目,然后结合几个图相关的处理技巧即可拿下。 图存储:邻接表即可。无向无…

DP:回文串模型

一、回文子串 . - 力扣(LeetCode) 该题有3种解法 (1)中心扩展算法(在字符串章节有介绍)时间复杂度O(N^2),空间复杂度O(1) (2)马丁车…

(二)深度学习基础练习题(54道选择题)

本文整理了深度学习基础知识相关的练习题,共54道,适用于想巩固深度学习基础的同学。来源:如荷学数据科学题库(技术专项-深度学习)。 1) 2) 3) 4) 5) 6&#…

【iOS】UI学习——登陆界面案例、照片墙案例

文章目录 登陆界面案例照片墙案例 登陆界面案例 这里通过一个登陆界面来复习一下前面学习的内容。 先在接口部分定义两个UILabel、两个UITextField、两个UIButton按键&#xff1a; #import <UIKit/UIKit.h>interface ViewController : UIViewController {UILabel* _lb…

零基础直接上手java跨平台桌面程序,使用javafx(二)可视化开发Scene Builder

我们只做实用的东西&#xff0c;不学习任何理论&#xff0c;如果你想学习理论&#xff0c;请去买几大本书&#xff0c;慢慢学去。 NetBeans有可视化工具&#xff0c;但是IntelliJ IDEA对于javafx,默认是没有可视化工具的。习惯用vs的朋友觉得&#xff0c;写界面还要是有一个布局…

【双指针算法】原地处理数组的双指针算法思想

移动零 题目中已经明确表示不能重新创建数组来辅助解题&#xff0c;因此只能对数组进行原地操作&#xff0c;即双指针算法思想。 算法思想&#xff1a; 题目要求我们将非0元素放在数组的左边&#xff0c;0元素放在数组的右边&#xff0c;同时保持非0元素的相对位置。 这种对…

归并排序——逆序数对的统计

逆序数对的统计 题目描述 运行代码 #include <iostream> using namespace std; #define LL long long const int N 1e5 5; int a[N], tmp[N]; LL merge_sort(int q[], int l, int r) {if (l > r)return 0; int mid l r >> 1; LL res merge_sort(q, l,…