Java基础入门·File类的使用

前言                                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     File类的创建方法

File类介绍                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​    boolean createNewFile()

File类的构造方法                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​  boolean mkdirs() 

 File (String pathname)                 ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​Flie的删除方法

File (String parent,String child)                 ​​​​​​​        ​​​​​​​    Flie类判断方法 

File (File parent,String child)                 ​​​​​​​        ​​​​​​​        ​​​​​​​代码总结​​​​​​​


前言

在今天学习开始前,我们先了解与文件相关的内容,打开我们后面学习Java File类的大门。

首先呢,我们了解一下“文件”“文件夹”这两个东西

文件File  用于存储数据,在同一文件夹/同一目录中文件名不能相同

文件夹Directory(也称目录)用于存储文件的容器,防止文件重名而设置,可以实现文件归类,但是!划重点,文件夹不存储任何数据!

那产生了文件和文件夹,必然在计算机里要有位置存放它们

而表示它们位置的方式,就是“路径”

路径Path  一个目录或者文件在磁盘中的位置,随便以磁盘中的文件为例

 

C:\Users\Hyper                          为C盘中Hyper用户文件夹的路径位置

D:\code\Java\4.16\text1.java     为text1.java这个文件的路径


File类介绍

* 那回到标题,File类是什么?*

 File类:就是描述目录文件和路径的对象


File类的构造方法

File (String pathname)                          传递字符串的路径名

File (String parent,String child)           传递字符串的父路径,字符串的子路径

File (File parent,String child)               传递File类型的父路径,传递字符串的子路径


  File (String pathname) 

我们使用时,先创建一个File对象,去磁盘里随便复制一个路径试一下,输出时是原封不动地输出里面的内容

public class FileText {public static void main(String[] args) {fileMethod();}public static void fileMethod(){File file = new File("D:\\code\\Java\\4.16\\text1.java");System.out.println(file);}
}
1.1单路径输出结果

 我们稍作调整,在原有的基础上随意输入,我们可以发现,即使没有这个路径,它依旧可以进行输出,当然,这要是直接写进一个项目里,肯定会出错,所以后面我们会学习到对其判断的一个功能,对路径是否存在进行筛选。

public static void fileMethod(){File file = new File("D:\\code\\Java\\4.16\\text1.hohufhknj");System.out.println(file);}
1.2单路径输出结果

File (String parent,String child) 

 这个需要传递两个参数,分别是:字符串的父路径,字符串的子路径

那首先,什么是父路径什么又是子路径?

我们以一个文件夹的路径为例

D:\Java\idea    就是  D:\Java\idea\Crack   的父路径

父路径具有唯一性,而子路径就不一定了,子路径无限,父路径后边可能是大大小小几十个子路径

 在应用代码时,父路径的字符串书写了以后,子路径不用再重复,可以直接书写子路径

在我们运行之后,File会自动把parent和child的字符串连接在一起,然后输出一个完整的路径 

public static void fileMethod2(){String parent = "D:\\Java\\idea";String child = "Crack";File file = new File(parent,child);System.out.println(file);}
1.3父子路径输出结果

当然,这里也可以进行修改,不用把parent和child写死在代码里,我们可以把它们写进参数里,然后让调用者传进去,这样子也是没问题的

public static void fileMethod2(String parent,String child){File file = new File(parent,child);System.out.println(file);}

File (File parent,String child) 

 与上面的类似,只是传入的参数有所不同

 但这种写法灵活度更高,采用了file对象,可以对其进一步处理

public static void fileMethod3(){File parent = new File("D:\\Java\\idea");String child = "Crack";File file = new File(parent,child);System.out.println(file);}

File类的创建方法

 boolean createNewFile()                创建一个文件,文件路径写在File的构造方法中

boolean mkdirs()                             创建目录,目录的位置和名字写在File的构造方法中


boolean createNewFile()

我们先使用boolean createNewFile(),创建一个文件练练手,为了方便存储,我在F盘建了一个Text文件夹,一会儿我们要在里面创建一个1.txt文件

代码如下,创建file对象,使用createNewFile()需要传出一个boolean值,这个布尔值是告诉你创建文件成功与否,成功则返回true,失败返回false

public static void fileMethod() throws IOException {File file = new File("F:\\Text\\1.txt");boolean newFile = file.createNewFile();System.out.println("newFile = " + newFile);}

现在我们看一下,文件夹里是空的,当我们运行代码后,文件夹里就会自动生成目标文件,然后返回一个布尔值true

那什么时候返回false呢?上文中我们提到,文件夹里的文件不能同名,所以当我们第二次运行代码时,newFile == false了 

1.4创建txt文件
1.5第二次运行false示意

注意:使用createNewFile(),只能创建文件,即使代码中写的是

File file = new File("F:\\Text\\新建文件夹");

那么创建出来的也不会是文件夹,依然是一个文件类型,所以,如果我们需要创建文件夹,则要“另辟蹊径”

 tips:拓展小知识,生成的文件其实与后缀名没有什么关系,后缀名只是方便系统寻找相应的软件打开它,写txt一般默认是记事本打开,后缀写docx,双击这个文件就是用word软件打开


 boolean mkdirs() 

 boolean mkdirs() 与boolean同理,要创建文件夹,就把代码换成这一句即可,同时,规则也依然不变,即使你是文件夹,也依然不能与文件同名,如果同名,也会返回false

public static void fileMethod() throws IOException {File file = new File("F:\\Text\\Directory");boolean newFile = file.mkdir();System.out.println("newFile = " + newFile);}

 这里有个小玩法,大家可以尝试一下,可以用mkdirs()这种方法创建多层的文件夹,即在文件夹中生成文件夹再生成文件夹······但是一定不要超过255个字符,否则。。。(不要轻易尝试)

还要一个小知识,mkdir()不带s,只能创建一层文件夹

 File file = new File("F:\\Text\\Directory\\a\\b\\c");

 Flie的删除方法

file.delete()

public static void fileMethod2(){File file = new File("F://Text//1.txt");boolean del = file.delete();System.out.println("del = " + del);}

 代码格式不变,输入需要删除的文件名(文件夹名)字符,运行代码进行删除,删除成功返回true,删除失败返回false

这种方法和我们平时删除文件(文件夹)的方式不同,磁盘中的文件(文件夹)直接删除会进入回收站,而使用此代码删除则直接抹除文件,有风险,误操作会导致文件丢失

Flie类判断方法 

boolean exists()                 判断构造方法中的路径是否存在

boolean isDirectory()        判断构造方法中的路径是不是文件夹

boolean isFile()                  判断构造方法中的路径是不是文件

boolean isAbsolute()         判断构造方法中的路径是不是绝对路径

 这些方法直接使用就可,下面着重讲一下绝对路径

路径分为

  • 绝对路径

                ·在磁盘中的路径具有唯一性

                ·Windows中盘符开头F://Text

                ·Linux或者Unix系统,/开头,磁盘跟/usr/local

                ·互联网路径:www.xxx.com

  • 相对路径

                ·必须有参照物

                ·F://Text//a//b//c以b为参考点

                ·则父路径为F://Text//a                父路径可以用../表示

                ·子路径为F://Text//a//b//c

代码总结 

File类的构造方法File类的创建方法 Flie的删除方法Flie类判断方法 
File (String pathname) 

boolean createNewFile()

file.delete()boolean exists()
File (String parent,String child) boolean mkdirs()boolean isDirectory() 
File (File parent,String child) boolean isFile()  
boolean isAbsolute() 

 今天的Java文章分享就到此结束了, 喜欢的小伙伴记得一键三连,点赞收藏评论,如果想了解更多内容,可以用未来百万富豪的手指,点点小小的关注!你们的支持就是我最大的动力!

 

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

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

相关文章

docker 数据持久化

文章目录 定制镜像持久化需求实现 数据卷持久化数据卷简介数据卷的特性创建读写数据卷停止容器后的操作查看数据卷详情 创建只写数据卷查看数据卷详情 创建共享数据卷 Dockerfile持久化创建Dockerfile、构建和运行镜像查看宿主机端的目录 在容器层的 UnionFS(联合文…

笔记1.2 计算机网络结构

网络边缘 主机、网络应用 接入网络,物理介质 有线或无线通信链路 网络核心(核心网络): 互联的路由器(或分组转发设备) 网络之网络 一、网络边缘 主机(端系统): 位…

vue3+ts+uniapp小程序封装获取授权hook函数

vue3tsuniapp小程序封装获取授权hook函数 小程序授权的时候,如果点击拒绝授权,然后就再也不会出现授权了,除非用户手动去右上角…设置打开 通过uni官方api自己封装一个全局的提示: uni.getSetting :http://uniapp.dcloud.io/api/other/settin…

Java操作Influxdb2.x

本片文章不讲怎么安装,只讲安装后如何用JAVA代码操作库表 1.创建数据库2.为bucket添加TELEGRAF配置3.TELEGRAF配置参数说明4.配置数据库的访问权限API TOKENS5.JAVA代码操作库表5.1 yaml5.2 pom依赖5.3 config5.4 controller5.5 查询方法、结果集提取方法 1.创建数据…

SpringBoot-插件化以及springboot扩展接口

插件化常用的实现思路 spi机制,Service Provider Interface ,是JDK内置的一种服务发现机制,SPI是一种动态替换扩展机制约定配置和目录,利用反射配合实现springboot中的Factories机制Java agent(探针)技术S…

JavaScript中的Generator函数及其使用方式

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Generator函数⭐ 创建Generator函数⭐ 调用Generator函数⭐ Generator函数的应用1. 异步编程2. 生成器(Generator) ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧…

老板要我开发一个简单的工作流引擎-读后感与补充

概述 最近读了一篇《老板要我开发一个简单的工作流引擎》 幽默风趣,干货较多,作为流程引擎的设计者、开发者、探索者,写的很好,合计自己的理解,对每个功能补充说明,对于流程引擎的应用场景,做出…

vue中slot,slot-scope,v-slot的用法和区别

slot用于设置标签的属性值(slot“title”)slot-scopev-slot slot <el-menu-item v-if"!navMenu.children" :key"navMenu.id" :index"navMenu.id " click"itemClick(navMenu)" ><span slot"title">{{ navMenu.…

无涯教程-JavaScript - N函数

描述 N函数返回一个转换为数字的值。 语法 N (value) 争论 Argument描述Required/OptionalValue 要转换的值或对值的引用。 N转换下表中列出的值。 Required 值 N的返回值一个数字那个数字日期,采用Microsoft Excel中可用的内置日期格式之一该日期的序列号 TRUE 1 FALSE…

大数据课程L3——网站流量项目的系统搭建

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的运行环境; ⚪ 了解网站流量项目的日志采集系统搭建; ⚪ 了解网站流量项目的离线业务系统搭建; ⚪ 了解网站流量项目的Hive做离线数据处理; ⚪ 了解网站流量项目的…

Java笔记:Java线程Dump分析

1 Thread Dump介绍 1.1 什么是Thread Dump Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的thread-dump的能力&#xff0c;虽然各个 Java虚拟机打印的thread dump略有不同&#xff0c;但是 大多都提供了当前活动线程的快…

【深度学习】 Python 和 NumPy 系列教程(廿七):Matplotlib详解:3、多子图和布局:散点矩阵图(Scatter Matrix Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 3、多子图和布局 1. subplot()函数 2. subplots()函数 3. 散点矩阵图&#xff08;Scatter Matrix Plot&#xff09; 一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于…

Web服务器解析:从基础到高级的全面指南

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 引言 Web服务器是现代互…

前端实现符合Promise/A+规范的Promise

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 介绍&#xff1a; Promise/A规范简介 1. Promise的三种状态&#xff1a; 2. 状态转换&#xff1a; 3. Promise的…

盘点11种高效改进卷积神经网络(CNN)的优化方法【核心代码下载】

卷积作为神经网络的核心计算之一&#xff0c;在CV领域有着诸多突破性进展&#xff0c;因而近年来关于卷积神经网络的研究不断。由于卷积的计算十分复杂&#xff0c;而且神经网络运行时很大一部分时间都会耗费在计算卷积上&#xff0c;因此优化卷积计算就显得尤为重要。 那么如…

2023谷歌开发者大会直播详细脚本

主播:三掌柜 设备:手机+直播云台 平台:CSDN 角度:对Google技术感兴趣的人、技术爱好者 画风:言简意赅、通俗易懂,将难懂的内容转化为简洁的描述,旨在让每一位观众都能有所收获。 形式:直播互动,提高受众人群的范围,包括但不限于对Google感兴趣的任何人,以及对G…

【LeetCode-简单题】剑指 Offer 58 - II. 左旋转字符串

文章目录 题目方法一&#xff1a;连续双指针翻转 题目 方法一&#xff1a;连续双指针翻转 class Solution {public String reverseLeftWords(String s, int n) {StringBuffer sb new StringBuffer(s);reverseWord(sb,0,n-1);reverseWord(sb,n,sb.length()-1);return sb.revers…

OLED透明屏触控:引领未来科技革命的创新力量

OLED透明屏触控技术作为一项颠覆性的创新&#xff0c;正在引领新一轮科技革命。它将OLED显示技术与触摸技术相结合&#xff0c;实现了透明度和触控功能的完美融合。 在这篇文章中&#xff0c;尼伽将通过引用最新的市场数据、报告和行业动态&#xff0c;详细介绍OLED透明屏触控…

hutool的HttpRequest.post的使用-包括上传文档等多个传参【总结版本】

首先hutool已经为我们封装好了远程调用的接口&#xff0c;我们只要将对应的传参和方式对应填写即可 hutool官方文档 1实际应用 post 常见的使用json传参&#xff0c;contend type为application/json RequestMapping("login") ResponseBody public static String s…

用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…