文件操作与IO—File类

news2025/4/25 5:07:57

目录

1 属性

2 构造方法

3 常用方法

4 示例代码


1 属性

修饰符与类型

属性

含义

static String

pathSeparator

依赖于系统的路径分隔符,String类型的表示

static char

pathSeparator

依赖于系统的路径分隔符,char类型的表示

2 构造方法

构造方法

含义

File(File parent, String child)

创建File对象,依据父目录的File对象+子文件的字符串创建

File(String parent, String child)

创建File对象,依据父目录的字符串+子文件的字符串创建

File(String pathname)

创建File对象,依据文件路径字符串创建

3 常用方法

返回值

方法名

含义

String

getParent()

返回父目录文件路径

String

getName()

返回文件名

String

getPath()

返回文件路径

String

getAbsolutePath()

返回绝对路径(把文件相对路径和工作路径拼接)

String

getCanonicalPath()

返回修饰过的绝对路径(上一个方法的路径可能有冗余信息,修饰过的路径不含冗余信息)

boolean

exists()

判断文件是否存在

boolean

isDirectory()

判断是否是目录

boolean

isFile()

判断是否是文件

boolean

createNewFile()

创建路径对应的文件

boolean

delete()

删除文件

void

deleteOnExit()

程序运行结束时删除文件

String[]

list()

返回目录下所有文件名

File[]

listFiles()

返回目录下所有文件的File对象

boolean

mkdir()

创建目录

boolean

mkdirs()

创建多级目录

boolean

renameTo(File dest)

文件重命名

boolean

canRead()

判断文件是否可读(权限)

boolean

canWrite()

判断文件是否可写(权限)

4 示例代码

public class FileOp {

    public static void main(String[] args) throws IOException {

//        //绝对路径

//        File file = new File("D:/test/testfile.txt");

//        //相对路径1:./当前文件或目录==工作路径+相对路径

//        File file = new File("./testfile.txt");

        //相对路径2:直接当前文件或目录==工作路径+相对路径

        File file = new File("testfile.txt");

        System.out.println("========File对象信息获取========");

        System.out.println(file.getParent());

        System.out.println(file.getName());

        System.out.println(file.getPath());

        System.out.println(file.getAbsolutePath());//这里的绝对路径=工作路径+相对路径(File对象表示的路径包含./)

        System.out.println(file.getCanonicalPath());//这里的绝对路径=工作路径+相对路径(去除掉冗余的./)

        System.out.println("========文件创建========");

        System.out.println(file.exists());//File对象的路径和是否存在对应的文件无关

        System.out.println(file.isDirectory());

        System.out.println(file.isFile());

        System.out.println(file.createNewFile());//路径对应的文件不存在就创建,否则不创建返回false

        System.out.println(file.exists());

        System.out.println(file.isDirectory());

        System.out.println(file.isFile());

        System.out.println(file.createNewFile());

        System.out.println("========文件删除========");

        System.out.println(file.delete());

        System.out.println(file.exists());

        System.out.println(file.createNewFile());

        System.out.println(file.exists());

        file.deleteOnExit();//延时到程序结束删除,没有返回值,不能被打印

        System.out.println(file.exists());//此时文件还是存在,结果应该是true

        System.out.println("========目录创建========");

        File file1 = new File("test");

        System.out.println(file1.exists());

        System.out.println(file1.isDirectory());

        System.out.println(file1.isFile());

        System.out.println(file1.mkdir());

        System.out.println(file1.exists());

        System.out.println(file1.isDirectory());

        System.out.println(file1.isFile());

        System.out.println(file1.delete());

        System.out.println(file1.exists());

        System.out.println("========多级目录创建========");

        file1 = new File("test/testdemo");

        System.out.println(file1.exists());

        System.out.println(file1.isDirectory());

        System.out.println(file1.isFile());

        System.out.println(file1.mkdir());//mkdir中间路径不存在,不能创建多级目录

        System.out.println(file1.exists());

        System.out.println(file1.mkdirs());//mkdirs创建多级目录

        System.out.println(file1.exists());

        System.out.println(file1.isDirectory());

        System.out.println(file1.isFile());

        System.out.println("========文件重命名========");

        File file2 = new File("newTest.txt");//新文件名对应的文件必须不存在

        System.out.println(file.exists());

        System.out.println(file2.exists());

        System.out.println(file.renameTo(file2));

        System.out.println(file.exists());

        System.out.println(file2.exists());

    }

}

        代码运行结果如下:

 下篇文章:

文件操作与IO—文件读写https://blog.csdn.net/sniper_fandc/article/details/146882239?fromshare=blogdetail&sharetype=blogdetail&sharerId=146882239&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

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

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

相关文章

音频进阶学习二十四——IIR滤波器设计方法

文章目录 前言一、滤波器设计要求1.选频滤波器种类2.通带、阻带、过度带3.滤波器设计指标 二、IIR滤波器的设计过程1.设计方法2.常见的模拟滤波器设计1)巴特沃斯滤波器(Butterworth Filter)2)切比雪夫滤波器(Chebyshev…

MVC编程

MVC基本概述 例子——显示本地文件系统结构 先分别拖入ListView,TableView,TreeView 然后在进行布局 在widget.cpp 结果 mock测试 1,先加入json测试对象 2.创建后端目录 3,在src添加新文件 在models文件夹里 在mybucket.h,添加测试用例的三个字段 4.在…

Qt进阶开发:对象树与拥有权

文章目录 一、对象树的概念二、对象拥有权(Ownership)三、Qt Widgets 中的特殊情况四、对象树与拥有权的实例 一、对象树的概念 在 Qt 中,对象树(Object Tree)与对象的拥有权(Ownership)密切相…

Django:构建高性能Web应用

引言:为何选择Django? 在当今快速发展的互联网时代,Web应用的开发效率与可维护性成为开发者关注的核心。Django作为一款基于Python的高级Web框架,以其"开箱即用"的特性、强大的ORM系统、优雅的URL路由设计,…

C语言基础系列【32】指针进阶5:指针与常量

博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

文法 2025/3/3

文法的定义 一个文法G是一个四元组:G(,,S,P) :一个非空有限的终极符号集合。它的每个元素称为终极符号或终极符,一般用小写字母表示。终极符号是一个语言不可再分的基本符号。 :一个非空有限的非终极符号集合。它的每个元素称为…

蚂蚁集团主导的ISO密码学国际标准立项,纳入国产算法

蚂蚁集团主导的ISO密码学国际标准 ISO 25330-3 立项, 国产算法Ferret成为标准方案。 近日,在美国弗吉尼亚州举行的 ISO/IEC JTC 1/SC 27 全体会议上,ISO/IEC 25330第三部分《Information Security — Oblivious Transfer — Part 3: Obliv…

nginx的用户认证

[rootserver100 html]# htpasswd -cm /usr/local/nginx/.htpasswd lee 创建用户给密码 编写nginx的配置文件 [rootserver100 html]# echo lee > /data/web/lee/index.html 写入实验内容 访问成功 用户访问认证的设定 用户认证的设定成功

为什么要指针压缩,为什么能指针压缩?原理是什么?

指针压缩(Compressed Oops)的原理与实现 指针压缩是 JVM 在 64 位环境 下优化内存占用的关键技术,通过减少对象指针的内存开销,提升缓存利用率和性能。以下是其核心原理与设计细节: 一、为什么要指针压缩?…

使用DeepSeek API进行情感分析:超简单

文章目录 1. 引言1.1 情感分析概述1.2 为什么选择DeepSeek API1.3 本文目标 2. 技术方案对比2.1 传统情感分析方法2.2 基于LLM的方法DeepSeek API优势 3. DeepSeek 情感分析实战3.1 Few-shot Learning方法3.2 完整的DeepSeek API调用示例3.3 案例演示 4. DeepSeek开发情感分析工…

一套SaaS多租户医疗云his源码,基于云计算的医院信息管理系统(云HIS)

基于云计算的医院信息管理系统(云HIS),通过SaaS服务模式提供。这种云HIS系统设计考虑了模板化、配置化、智能化和可扩展性,覆盖了基层医疗机构的核心工作流程,并且能够与监管系统无缝对接,满足未来的扩展需…

数据处理与机器学习入门

一、数据处理概述 数据处理是通过统计学、机器学习和数据挖掘方法从原始数据中提取有价值信息的过程。数据处理的目标是将杂乱无章的原始数据转化为可用于分析和建模的结构化数据。对于小规模数据处理,常用工具分为两类: • 可视化分析工具&#xff1a…

【SPP】深入解析蓝牙 L2CAP 协议在SPP中的互操作性要求 —— 构建可靠的蓝牙串口通信基础

在蓝牙协议体系中,L2CAP(Logical Link Control and Adaptation Protocol)作为基带协议与高层协议之间的桥梁,承担着数据分帧、协议复用、QoS协商等核心功能。当涉及串行端口通信时,L2CAP的规范实现直接决定了设备间数据…

21 模板方法(Template Method)模式

模板方法模式 1.1 分类 (类)行为型 1.2 提出问题 做一款数据挖掘的程序,需要支持不同格式的数据文件,虽然文件格式不同,实现步骤基本一致。 1.3 解决方案 定义一个算法骨架,而将一些步骤延迟到子类。…

一些练习 C 语言的小游戏

一些练习 C 语言的小游戏 — 1. 猜数字游戏 描述:程序随机生成一个数字,玩家需要猜测这个数字,并根据提示(太高或太低)调整猜测,直到猜中为止。 功能点: 随机数生成 (rand() 函数)。循环和…

【AI News | 20250331】每日AI进展

AI Repos 1、MCP-Chinese-Getting-Started-Guide 模型上下文协议(MCP)是一个创新的开源协议,旨在标准化大语言模型(LLM)与外部数据源及工具的连接方式,类似AI应用的“USB-C接口”。其核心功能包括资源、提…

C++/数据结构:哈希表知识点

目录 哈希表 理解哈希表 哈希值(整形) BKDR哈希 异或组合 hash_combine 哈希函数 直接定址法 除留余数法 平方取中法 基数转换法 哈希冲突 开放定址法 哈希桶 unordered_map和unorder_set如何共用一个哈希桶模板类 stl的哈希桶中Insert如…

基于SpringBoot的求职招聘网站系统(源码+数据库)

473基于SpringBoot的求职招聘网站系统,本系统共分为2个角色:系统管理员、用户,主要功能如下 【前台功能】 用户角色功能: 1. 注册和登录:注册账户并登录系统,以便访问更多功能。 2. 个人信息管理&#x…

Linux : System V 共享内存

目录 一 前言 二 共享内存概念 三 共享内存创建 四 查看共享内存 五 共享内存的删除 六 共享内存的关联 七 共享内存去关联 八 共享内存的使用(通信) 九 共享内存的特点 一 前言 共享内存区是最快的IPC形式(进程间通信&#xff1…

端到端语音识别案例

《DeepSeek大模型高性能核心技术与多模态融合开发(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 语音识别这一技术正如其名,是通过精密地解析说话人的语音来识别并准确转写出其所说的内容。它不仅仅是一个简单的转录过程&#…