JAVA小知识28:FIle类文件对象

news2025/1/20 10:54:22

Java 中的 File 类是 java.io 包中的一个类,用于表示文件和目录路径名的抽象表示。它提供了一些方法来操作文件和目录

一、File的创建

1.1、绝对路径

绝对路径是指从文件系统的根目录开始定位文件或目录的完整路径。它通常以根目录符号开始,在 Windows 系统中是盘符 (如 C:),在 Unix/Linux 系统中是斜杠 (/)。

特点:

  1. 从根目录开始,路径是唯一的。
  2. 无论当前工作目录是什么,都可以使用绝对路径准确定位文件或目录。
    例如:
  • Windows: C:\Users\John\Documents\report.txt
  • Unix/Linux: /home/john/documents/report.txt

1.2、相对路径

相对路径是指相对于当前工作目录定位文件或目录的路径。它不以根目录符号开始,而是相对于当前目录进行路径解析。

特点:

  1. 依赖于当前工作目录,路径的解释可能会因为当前目录的不同而不同。
  2. 相对路径更简短,适用于程序中经常变动的目录结构。
    例如:
  1. 当前目录为 C:\Users\John\Documents,相对路径 report.txt 指向 C:\Users\John\Documents\report.txt
  2. 当前目录为 /home/john/documents,相对路径 …/report.txt 指向 /home/john/report.txt

1.3、File的构造方法

在这里插入图片描述

三种构造方法的使用,虽然有三种构造方法,但是这三种构造方法所构建的对象都是同一个

// 1. 根据字符串表示的路径创造File对象
String path = "C:\\Users\\password123456\\Desktop\\资料\\demo1.txt";
File file = new File(path);
System.out.println(file);//C:\Users\password123456\Desktop\资料
// 2.根据父路径名字符串和子路径名字符串创建文件对象
// 父路径:C:\Users\password123456\Desktop\资料
// 子路径:demo1.txt
String fatherPath = "C:\\Users\\password123456\\Desktop\\资料";
String childPath = "demo1.txt";
File file1 = new File(fatherPath,childPath);
System.out.println(file1);//C:\Users\password123456\Desktop\资料\demo1.txt
// 3. 根据父路径对应文件对象和子路径名字符串创建京件对象斯
File file2 = new File("C:\\Users\\password123456\\Desktop\\资料");
File file3 = new File(file2,childPath);
System.out.println(file3);//C:\Users\password123456\Desktop\资料\demo1.txt

二、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()返回文件的最后修改时间(时间毫秒值)
String path = "C:\\Users\\password123456\\Desktop\\资料\\demo1.txt";
String path2 = "C:\\Users\\password123456\\Desktop\\资料";
File file = new File(path);
File file2 = new File(path2);
//public boolean isDirectory()	判断此路径名表示的File是否为文件夹
System.out.println(file.isDirectory());// false
System.out.println(file2.isDirectory());// true
// public boolean isFile()	判断此路径名表示的File是否为文件
System.out.println(file.isFile());// true
// public boolean exists()	判断此路径名表示的File是否存在
System.out.println(file.exists());// true
//public long length()	返回文件的大小(字节数量)
System.out.println(file.length());// 0
//public string getAbsolutePath()	返回文件的绝对路径
System.out.println(file.getAbsoluteFile());// C:\Users\password123456\Desktop\资料\demo1.txt
//public string getPath()	返回定义文件时使用的路径
System.out.println(file.getPath());// C:\Users\password123456\Desktop\资料\demo1.txt
//public string getName()	返回文件的名称,带后缀
System.out.println(file.getName());// demo1.txt
//public long lastModified()	返回文件的最后修改时间(时间毫秒值)
System.out.println(file.lastModified());// 1718950374967

三、File的创造删除方法

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

createNewFile:创建一个新的空的文件:

  1. 如果当前路径表示的文件是不存在的,则创建成功,方法返回true。如果当前路径表示的文件是存在的,则创建失败,方法返回false。
  2. 如果父级路径是不存在的,那么方法会有异常I0Exception
  3. createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件
// 1. 根据字符串表示的路径创造File对象
String path = "C:\\Users\\password123456\\Desktop\\资料\\File类\\a.txt";
File file = new File(path);
//public boolean createNewFile()	创建一个新的空的文件
boolean newFile = file.createNewFile();
System.out.println(newFile);
//public boolean mkdir()	创建单级文件夹
File file1 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa");
boolean mkdir = file1.mkdir();
System.out.println(mkdir);// true
//public boolean mkdirs()	创建多级文件夹
File file2 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa\\bbb\\ccc");
boolean mkdirs = file2.mkdirs();
System.out.println(mkdirs);//true
//public boolean delete()	删除文件、空文件夹
File file3 = new File("C:\\Users\\password123456\\Desktop\\资料\\File类\\aaa\\bbb\\ccc");
boolean delete = file3.delete();
System.out.println(delete);//true

四、获取并且遍历

方法名称说明
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)利用文件名过滤器获取当前该路径下所有内容

== 最为重要的就是:public File[] listFiles() ==

我们来看看演示代码

String path = "C:\\Users\\password123456\\Desktop\\资料\\File类";
File file = new File(path);
File[] files = file.listFiles();
for (File file1 : files) {
    File absoluteFile = file1.getAbsoluteFile();
    System.out.println(absoluteFile);
}

接下来看看文件中以及输出语句
在这里插入图片描述
在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​Claude 3.5 最新体验:助力硕博生与科研人员高效完成论文,超越ChatGPT4o !

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 要不说AI领域的进展真的是日新月异,发展速度已经大大超过预期进度。娜姐本来在准备AI降重工具的测评文章(最近好多小伙伴需要)。 昨天晚上…

多头Attention MultiheadAttention 怎么用?详细解释

import torch import torch.nn as nn# 定义多头注意力层 embed_dim 512 # 输入嵌入维度 num_heads 8 # 注意力头的数量 multihead_attn nn.MultiheadAttention(embed_dim, num_heads)# 创建一些示例数据 batch_size 10 # 批次大小 seq_len 20 # 序列长度 query torch…

rknn转换后精度差异很大,失真算子自纠

下面是添加了详细注释的优化代码: import cv2 import numpy as np import onnx import onnxruntime as rt from onnx import helper, shape_inferencedef get_all_node_names(model):"""获取模型中所有节点的名称。参数:model (onnx.ModelProto): O…

【有手就会】图数据库Demo教程,实现反洗钱场景下银行转账流水数据分析

前言 星环社区版家族于近期发布了单机、30s一键启动的StellarDB图数据库,本篇文章将为用户介绍如何使用开发版StellarDB实现人物关系探索。 友情链接:白话大数据 | 关于图数据库,没有比这篇更通俗易懂的啦 TDH社区版本次发布StellarDB社区…

可信启动Trusted Board Boot

TBB Trusted Board Boot(TBB)对所有固件镜像(包括普通世界的bootloader)进行身份验证,以防止恶意固件在平台上运行。TBB使用公钥加密标准 (PKCS)来建立信任链(Chain of Trust&#…

密码CTF(4)——e和phi不互素

参考 RSA中e和phi不互素 AMM算法 AMM算法简要理解 RSA系列解题研究——e与phi不互素 - 先知社区 (aliyun.com) e与phi不互素 --- 四 1 1 1道题详记-CSDN博客 总述 gcd(e,φ(n))比较小时可以考虑iroot直接开根,当直接开根跑不出来时,考虑有限域…

xargs 传参

xargs的默认命令是 echo,空格是默认定界符。这意味着通过管道传递给 xargs的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。 xargs -n1 // 一次输出一个参数到一行&#xf…

【Android面试八股文】你能说一说自定义View与ViewGroup的区别

文章目录 Android UI 组件:View 和 ViewGroupViewGroup 的职责View 的职责自定义 View 和 ViewGroup 的区别1. 继承的类不同2. 主要功能不同3. 重写方法不同4. 使用场景不同5. 事件分发方面的区别6. UI 绘制方面的区别Android UI 组件:View 和 ViewGroup 在 Android 开发中,…

Python开发日记--手撸加解密小工具(3)

目录 1.xcb-cuisor0问题解决 2.AES-CBC算法实现 2.1 信号和槽机制 2.2 开始设计算法 3.小结 1.xcb-cuisor0问题解决 继续解决该问题,在Ubuntu下面运行会发生这个错误。 看描述, 这是说要运行Qt xcb平台插件,需要xcb-cursor0或者libxcb-c…

舔狗日记Puls微信小程序源码

源码介绍: 这是一款舔狗日记Puls微信小程序源码,提供每日一舔的功能,让你舔到最后,什么都有! 源码通过API获取一些舔狗日记,内置了100多句舔狗日记,让你摆脱上班摸鱼的无聊时光, …

Python火焰锋动力学和浅水表面波浪偏微分方程

🎯要点 🎯流图可视化正弦余弦矢量场 | 🎯解空间变化边界条件二维拉普拉斯方程 | 🎯解圆柱坐标系标量场 | 🎯解一维泊松方程 | 🎯解二维扩散方程 | 🎯解火焰锋的动力学偏微分方程 | &#x1f3a…

【LeetCode刷题】6. Z 字形变换

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 6. Z 字形变换 2. 题目描述 3. 解题方法 假设一串字符串"abcdefghijklmnopqrstuvwx", 会有如下排列: 我们再以下标来看看排列 从下标来看,每个下标是有规律的 每一行的下标之间的差…

一个自定义流程的平台

脚本语言使用的是C#,当用户发布一个新的流程时,会把C#的脚本编译成dll,然后添加到微服务中,因为有了硬编译,所以执行速度是非常快的。逻辑脚本支持调试,可以断点和逐行调试。平台提供了调试工具&#xff0c…

每月 GitHub 探索|10 款引领科技趋势的开源项目

1.IT-Tools 仓库名称: CorentinTh/it-tools 截止发稿星数: 16842 (近一个月新增:5744) 仓库语言: Vue 仓库开源协议: GNU General Public License v3.0 引言 CorentinTh/it-tools 是一个开源项目,提供各种对开发者友好的在线工具&#xff0…

LabVIEW项目中的常见电机及其特点分析

在LabVIEW项目中,电机的选择对系统的性能和应用效果至关重要。常见电机类型包括直流电机(DC Motor)、步进电机(Stepper Motor)、交流感应电机(AC Induction Motor)和无刷直流电机(BL…

使用上海云盾 CDN 和 CloudFlare 后 Nginx、 WordPress、 Typecho 获取访客真实 IP 方法

最近因为被 DDoS/CC 攻击的厉害,明月就临时的迁移了服务器,原来的服务器就空置下来了,让明月有时间对服务器进行了重置重新部署安装生产环境。因为站点同时使用了上海云盾和 CloudFlare(具体思路可以参考【国内网站使用国外 CloudFlare CDN 的思路分享】一文)两个 CDN 服务…

人工智能--搭建人工神经网络

欢迎来到 Papicatch的博客 文章目录 🍉引言 🍉神经元与感知器 🍈神经元(Neuron) 🍈感知器 🍉损失函数与梯度下降算法 🍈损失函数 🍈梯度下降算法 🍉…

微型操作系统内核源码详解系列五(3):cm3下调度的开启

系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列…

大语言模型-Transformer

目录 1.概述 2.作用 3.诞生背景 4.历史版本 5.优缺点 5.1.优点 5.2.缺点 6.如何使用 7.应用场景 7.1.十大应用场景 7.2.聊天机器人 8.Python示例 9.总结 1.概述 大语言模型-Transformer是一种基于自注意力机制(self-attention)的深度学习…

AI通用大模型不及垂直大模型?各有各的好

​​​​​​​AI时代,通用大模型和垂直大模型,两者孰优孰劣,一直众说纷纭。 通用大模型,聚焦基础层,如ChatGPT、百度文心一言,科大讯飞星火大模型等,都归属通用大模型,它们可以解答…