【JAVA】#详细介绍!!! 文件操作之File对象(1)!

news2024/11/24 11:52:37

本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件

目录

文件操作的File对象

 File对象的基本操作方法

得到文件(夹)对象的信息元

1.getParent

2. getName

3.getPath

 4. getAbsolutePath和getCanonicalPath

文件和目录的创建

文件的创建:createNewFile

目录的创建:mkdir和mkdirs

文件(夹)的删除

直接删除:delete

程序执行结束再删除:deleteOnExit



 


文件操作的File对象

Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。

注意:有 File 对象,并不代表真实存在该文件

构造一个File对象,参数为String类型(文件(夹)的路径),可以同时构造一个父路径和一个孩子路径或者文件

这个路径可以是绝对路径也可以是相对路径(相对路径以当前项目的文件夹路径作为参照物)

使用File类时记得调包(ava.io.File)

 

File file = new File("路径")

注意:当前构建的文件对象不一定真实存在

public class Test {
    public static void main(String[] args) throws IOException {
        File file = new File("test.txt");
        System.out.println(file.exists());
    }
}

结果:

例如这里用相对路径当前项目文件夹中构造了一个test.txt文件的对象file

这里调用exists方法查看当前对象是否真实存在,结果为false

实际上当前java项目的文件夹中确实没有这个test.txt文件

 File对象的基本操作方法

 

得到文件(夹)对象的信息元

1.getParent方法

获得file对象的父目录文件路径:

分两种情况:

1. 如果是绝对地址创建的对象,那么直接调用getParent方法可以正常返回父目录的文件路径

2.如果是相对地址创建的对象,直接调用则可以会返回错误的文件路径,因为getParent是以你构建的对象的参数做为返回依据的,例如相对路径为 ../test.txt ,则返回的getParent结果则为 .. 而不是真正的父目录,甚至如果相对路径为 test.txt ,前面没有路径作为参数了,返回的getParent结果会为null;此时需要借助getCanonicalFile方法,以修饰后的绝对路径进行路径转换再调用getParent得到父目录

 代码:

File file = new File("../text.txt");
System.out.println(file.getCanonicalFile().getParent());

2. getName

这个没什么多说的,就是返回FIle对象的纯文件(夹)名称

例如:test.txt这个文件对象不管是绝对路径还是相对路径创建的对象,那么返回的就是test.txt,getName针对的是最后具体的文件

3.getPath

返回当前文件对象的路径

实际就是返回这个对象创建时构造的路径参数

如果是绝对地址构建的对象,返回的绝对地址,如果是相对地址构建的对象,返回的就是相对地址

代码:

File file = new File("../test.txt");
System.out.println(file.getPath());

 4. getAbsolutePath和getCanonicalPath

都是以绝对路径的形式返回对象的路径地址

区别:getAbsolutePath是不经过修饰的绝对地址,会把相对路径的地址完整包含进去,组成一个未修饰的路径

getCanonicalPath是经过修饰的绝对地址,中间绝对相对路径就自动进行转化

代码:

File file = new File("../test.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

getABsolutePath把完整的相对路径不经过缩减直接把连接符都加上去了组成绝对路径 

文件和目录的创建

文件的创建:createNewFile

使用createNewFile

可以先用exists方法先判断这个文件是否存在,避免在不知情的时创建失败

代码:

File file = new File("test.txt");
if(!file.exists()){
    System.out.println(file.createNewFile()); // 第一次创建
}
System.out.println(file.createNewFile()); //第二次创建

  

由于我的项目目录中没有test.txt文件,所以exists方法判断的时false,

此时第一次创建的结果未true,已经创建完成,所以第二次创建的结果未false

目录的创建:mkdir和mkdirs

 

mkdir只能一次性创建一个目录,mkdirs可以一次性创建多个目录

File file = new File("test");
System.out.println(file.mkdir());  //在当前项目路径下创建一个test的目录

File file2 = new File("test1/test2");
System.out.println(file2.mkdirs());  //在当前项目路径下创建一个test1的目录,并在其中创建一个test2的子目录

 

 

文件(夹)的删除

直接删除:delete

 

使用delete方法,就能对路径对象的文件进行删除

例子:删除前面创建的test.txt文件

File file = new File("test.txt");
System.out.println(file.delete());

 注意:目录也是相同方式操作,只不过要注意的是,目录需要先删除里层的目录,才能删掉外层的目录

程序执行结束再删除:deleteOnExit

效果和前面的delete相似,只不过delete是执行到代码就直接删除对象文件,而deleteOnExit是把整个代码执行完才删除对象文件


本篇文章介绍到这里就差不多了,本篇文章并不涉及到文件内容的操作,只是介绍了基本的文件对象的构造和文件的创建和删除,以及介绍了一些常用的File方法


 

 

 

 

 

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

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

相关文章

CentOS 安装与配置Nginx【含修改配置文件】

1.安装Nginx yum install nginx -y2.启动Nginx systemctl start nginx查询是否启动nginx systemctl status nginx3.尝试访问 这是默认的配置文件 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * …

wordcloud制作词云图

wordcloud制作词云图 wordcloud中文方框问题 jieba(分词)jieba库分词的三种模式 wordcloud WordCloud(font_pathNone, width400, height-200,margin2,maskNone, max_words200, min_font_size4, stopwordsNone,background_colorblack, max_font_sizeNone…

js中setinterval怎么用?怎么才能让setinterval停下来?

setinterval()是定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setinterval()的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。 setInterval() 方法会不停地调用函数,…

浙大数据结构与算法一些有意思的理论基础题

堆栈 有人给出了堆栈用数组实现的另一种方式,即直接在函数参数中传递数组和top变量(而不是两者组成的结构指针),其中Push操作函数设计如下。这个Push函数正确吗?为什么? #define MaxSize 100 ElementTyp…

Three.js--》Gsap动画库基本使用与原理

目录 Gsap动画库使用讲解 Gsap动画库基本使用 修改自适应画面及双击进入全屏 设置stats性能监视器 Gsap动画库使用讲解 GSAP的全名是GreenSock Animation Platform,是一个从flash时代一直发展到今天的专业动画库,今天将其与three.js进行结合&#x…

【DevOps视频笔记】1. DevOps的诞生

视频官网 目录 一、DevOps介绍 定义: 作用: 核心: 二、软件开发流程 三、流程图 一、DevOps介绍 定义: Development & Operations的缩写,也就是开发&运维DevOps 是一个不断提高效率并且持续不断工作的…

GPIO输出——LED闪烁、LED流水灯、蜂鸣器

1、STM32F1 GPIO 简介 GPIO ( General Purpose Input Output )通用输入输出口 可配置为 8 种输入输出模式 引脚电平: 0V~3.3V ,部分引脚可容忍 5V 输出模式下可控制端口输出高低电平,用以驱动 LED 、控制蜂鸣器、模拟通…

Spring 统一功能处理(拦截器)

文章目录 Spring拦截器1.统一用户登录权限校验1) SpringAOP 用户统一验证的问题2) Spring拦截器3) 拦截器实现原理4)同一访问前缀添加 2. 统一异常处理3. 统一数据返回格式1)统一数据返回的好处2)统一数据返回实现 Spring拦截器 SpringBoot统…

第13章 项目合同管理

文章目录 13.2.1 按信息系统 范围 划分的合同分类 4451、总承包合同2、单项工程承包合同3、分包合同 13.2.2 按项目 付款方式 划分的合同分类 4461、总价合同2、成本补偿合同(卖方有利)3、工料合同 13.3.1 项目合同的内容 44713.3.2 项目合同签订的注意事…

【设计模式】我终于读懂了迭代器模式。。。

看一个具体的需求 编写程序展示一个学校院系结构:需求是这样 要在一个页面中展示出学校的院系组成, 一个学校有多个学院, 一个学院有多个系。 如图: 传统的设计方案(类图) 传统的方式的问题分析 将学院看做是学校的子类&#xf…

深度学习(23):SmoothL1Loss损失函数

0. 基本介绍 SmoothL1Loss是一种常用的损失函数,通常用于回归任务中,其相对于均方差(MSE)损失函数的优势在于对异常值(如过大或过小的离群点)的惩罚更小,从而使模型更加健壮。 SmoothL1Loss的公式为: l o s s ( x , y ) { 0.5 …

机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

eureka自我保护模式详解(全网最全)

1. 什么叫自我保护模式? 当微服务客户端启动后,会把自身信息注册到Eureka注册中心,以供其他微服务进行调用。一般情况下,当某个服务不可用时(一段时间内没有检测到心跳或者连接超时等),那么Eure…

spring3:更简单的读取和存入对象

目录 1.存储 Bean 对象 1.1 前置⼯作:配置扫描路径(重要) 1.2 添加注解存储 Bean 对象 1.2.1.Controller[控制器] 1.2.2 Service[服务] 1.2.3 repoistory[仓库] 1.2.4 Configuration[配置] 1.2.5 Component[组件] 1.3为什么要这么多类…

Spring 创建和使用

文章目录 什么是 Bean ?1. 创建 Spring 项目1.创建一个 Maven 项目2. 添加 Spring 依赖1.配置 Maven 国内源2.添加 Maven 依赖 3.添加启动项 2.存储Bean对象1.创建 Bean2.注册 Bean3.获取并使用 Bean 对象1. 得到 Spring 对象常见方式有两种: 2. 获取 Bean 对象Bean 的三种获取…

SpringMVC中使用LocalDateTime、LocalDate等参数作为入参数据转换问题

1、接收GET请求方式及POST请求表单方式时间类型传参,需要自定义参数转换器或者使用ControllerAdvice配合initBind,不设置的话表单方式会报以下错误: 这种情况要和时间作为Json字符串时区别对待,因为前端json转后端pojo底层使用的是…

什么是Auto GPT-4? OpenAI 最新语言模型概览

动动发财的小手,点个赞吧! 人工智能正在快速发展,近年来最令人兴奋的发展之一是创建可以生成类似人类文本的语言模型。领先的人工智能研究机构 OpenAI 最近发布了其最新的语言模型 Auto GPT-4。 在什么是 Auto GPT-4? OpenAI 最新…

【Java笔试强训 29】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥求正数数…

AtCoder Beginner Contest 300(D-G)

D - AABCC (atcoder.jp) (1)题目大意 给你个数N,问你不超过N的三个质数abc组成的数有多少个。 (2)解题思路 考虑到枚举的数不会特别多,因此预处理出1e6的质因子,暴力枚举即可。 (3&a…

在体育新闻文本中提取关键词可以使用什么技术

在体育新闻文本中提取关键词可以使用以下技术: 1. 领域词典: 通过构建体育领域的词汇表,将其中的词语作为关键词,可以较好地提取体育新闻中的关键词。 就当下的研究情况,国内外有哪些体育领域的词汇表http://t.csdn…