当前位置: 首页 > news >正文

文件操作和IO - 2

目录

Java 中操作文件

File 概述

属性

构造方法

方法

getParent getName getPath getAbsolutePath getCanonicalPath

exists isFile isDirectory createNewFile 

delete deleteOnExit

list listFiles

mkdir mkdirs

完!


Java 中操作文件

Java 对于文件操作的 API

        1. 针对文件系统的操作。包括但不限于:创建文件,删除文件,重命名文件,列出目录内容...

        2. 针对文件内容的操作。读文件 / 写文件

Java 中针对文件系统的操作,使用 File 类来进行操作。这个类所在的包叫做 java.io

i:即 input(输入)o:即 output(输出)

如何记忆数据从 硬盘 道 CPU 叫做输入,还是 CPU 到硬盘的过程叫做输入呢???

有句名言叫:“屁股决定脑袋~~~”坐在那个位置,我们的想法就是怎么样的。对于计算机来说,CPU 是最关键的部分,我们就可以认为,我们的屁股是坐在 CPU 上来看待问题的。也就是说,硬盘 到 CPU 叫做输入~~

File 概述

属性

属性是路径之间的分隔符,会根据系统自动进行调整。实际开发中更建议直接使用 / 

构造方法

大多数情况下,我们使用第二种构造方法。

构造一个 File 对象,需要指定路径。此处的路径可以是绝对路径也可以是相对路径(这个路径也可以是不存在的路径)

如果写作相对路径。

        1. 如果是直接在 idea 中运行程序,则此时工作目录就是我们项目的所在目录。

        2. 如果是把代码打包成一个单独的 jar 包来执行,此时工作目录就是 jar 包所在的目录

如果是其他两种方式的话,例如 C:\Users\1\test.txt ==》 对于这个文件来说,parent 就是 C:Users\1

方法

getParent getName getPath getAbsolutePath getCanonicalPath

示例代码:

当我们在 C 盘下 Users 的 laideji 中有一个 test.txt 文件,使用绝对路径当作参数传入 File 中

打印结果如下:

getParent() 会得到父目录的路径,并且 getPath() getAbsolutePath() 和 getCanonicalPath() 的结果都是相同的

当我们注释掉绝对路径,而采用相对路径的时候:

打印结果如下:

研究打印结果发现,哇哦,有好多不相同的地方~~~

首先,这里的第一个方法 getParent() 方法仅仅打印了一个 . 来表示父目录

然后,getPath() 方法中的结果就是 File 构造方法中的参数

其次,getAbsolutePath() 方法中,和下面的 getCanoicalPath 方法对比,多了一个 .   这个 . 表示的是当前的路径,此处是先一层一层找到了 J2025_3_24 这一级目录,然后再找 . 此时 . 就是 J2025_3_24, 相当于是原地踏步了一下~ 而 getCanoicalPath 则是针对上面的绝对路径简化整理之后的效果了,没有了那个点~~~

exists isFile isDirectory createNewFile 

当我们在当前项目中,创建一个 test.txt 之后:

如果有代码:

打印结果如下:

第一个 ture 表示:File对象描述的文件真实存在,第二个 ture 表示的是 File对象描述的是文件,接下来的 false 表示的是 File对象描述的不是目录,最后 ret = false 表示的是,根据 File对象,没有成功创建一个空的文件,因为我们已经自己手动的在项目下面创建了 test.txt

delete deleteOnExit

如果我们想要删除文件:

运行后,项目下的 test.txt 就会被删除,同时 ret 为 true。 如果再运行一次,因为项目中已经没有了该文件,ret 就会打印 false

还有一种删除的方式是:退出时再删除,deleteOnExit 方法

代码如下:

刚开始程序运行的时候,项目下的 test.txt 并不会被删除,当 sleep 五秒之后,程序结束的时候,才会删除 test.txt 文件(有时候可能会出现,程序已经结束退出了,但是文件仍然能看到的情况,这个情况有可能是 IDEA 的延迟,文件其实已经没有了,但是 IDEA 文件列表并没有及时的刷新,我们手动 F5 刷新一下即可)

退出后再删除,这样的文件,也被称为“临时文件”。就比如 docx 就会有一个临时文件。我们正在编辑的内容,都是再内存中的,如果我们的电脑(台式机)突然断电,内存数据就没有了。因此想 word 这样的程序,会将我们正在编辑的内容写入到这个临时文件中,如果突然断电,临时文件仍然会存在,借助这个临时文件,就可以恢复之前并没有保存的数据~~~

比如,我们打开这个 Hello wowrld 的 docx 文件,然后再在这个文件的路径下查看,就会发现有一个隐藏的项目 docx 文件,这个文件就是临时文件~~~

list listFiles

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

打印结果如下:

如果要以 File 对象表示的话:

打印结果如下:这样打印的就是 file 对象目录下的所有文件名的相对地址~

mkdir mkdirs

 创建 File 对象代表的目录:

代码如下:

运行完毕后,如果当先项目下没有名为 aaa 的目录,则会打印 ture,并创建一个名为 aaa 的目录

创建 File 对象代表的目录,如果有必要,会创建中间目录

代码示例:

上面我们已经创建了名为 aaa 的目录,要想在 aaa 下面创建一个 bbb 同时再在 bbb 下面创建 ccc,就可以使用 mkdirs 方法~~~

renameTo

进行文件改名,也可以是作为我们平时的剪切,粘贴操作~~~

上述示例代码,将该项目下的 test.txt 文件路径转移到了该项目下 aaa 目录下,更名为 test2.txt

完!


http://www.mrgr.cn/news/98151.html

相关文章:

  • 【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)
  • 07-并发线程 面试题-mk
  • ssh 免密登录服务器(vscode +ssh 免密登录)
  • 【高性能缓存Redis_中间件】一、快速上手redis缓存中间件
  • C++基础精讲-02
  • 05-RabbitMQ 面试题-mk
  • 【软考系统架构设计师】信息安全技术基础知识点
  • Skynet入门(二)
  • TDengine 语言连接器(C/C++)
  • Windows系统Python多版本运行解决TensorFlow安装问题(附详细图文)
  • 用Java NIO模拟HTTPS
  • SDC命令详解:使用相对路径访问设计对象(current_instance命令)
  • 多线程(Java)
  • Ubuntu 系统深度清理:彻底卸载 Redis 服务及残留配置
  • 第十六届蓝桥杯省赛JavaB组题解
  • cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析
  • LINUX基础 [二] - Linux常见指令
  • 【STM32】ST7789屏幕驱动
  • 2025届蓝桥杯JavaB组个人题解(题目全)
  • 【前端小技巧】实现详情页滚动位置记忆,提升用户体验