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

【Java系列】文件操作详解

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【Java系列专栏】【JaveEE学习专栏】
本专栏旨在分享学习JavaEE的一点学习心得,欢迎大家在评论区交流讨论💌

目录

  • 一、什么是文件
  • 二、Java中操作文件
  • 三、java.io.File类

一、什么是文件

文件是在硬盘上存储数据的一种方式。即数据是在硬盘上进行存储的,但是我们并不会直接去操作硬盘,而是通过文件的方式去访问数据的(操作系统将硬盘上的一些细节进行了封装,可以理解为操作系统通过文件系统来管理硬盘),作为开发者我们只需要了解文件相关的接口即可。

在这里插入图片描述
上图中的NTFS文件系统就是windows上的文件系统,这个文件系统背后一定有固定的格式来组织硬盘上的数据(即规定硬盘上的哪一块哪一块空间存储什么样什么样的数据)。而EXT4是Linux系统上的文件系统。

在这里插入图片描述

不同的文件系统管理硬盘的方式都是类似的,即都是通过目录 - 文件构成了N叉树的这样一个树形结构。

文件系统上的文件分为两大类:文本文件(存储的是字符,用记事本打开能够开懂)和二进制文件(存储的是二进制的数据,用记事本打开不能看懂)。

二、Java中操作文件

Java中通过java.io.File类来对一个文件(包括目录)进行抽象的描述。io即input输入和output输出,要站在CPU的角度去看待输入输出。通过FIle类创建出来的对象既可以对应到一个真实存在的文件,也可以对应到并不真实存在的文件。
在这里插入图片描述

三、java.io.File类

先来看File类的构造方法

在这里插入图片描述

  • File(File parent, String child):根据父目录 + 孩子文件路径,创建一个新的 File 实例。
  • File(String pathname):根据文件路径创建一个新的 File 实例,路径可以是绝对路径或者相对路径。此处参数的字符串是一个路径,此路径既可以是绝对路径也可以是相对路径。
  • File(String parent, String child):根据父目录 + 孩子文件路径,创建一个新的 File 实例,父目录用路径表示。

相关方法如下:

修饰符及返回值类型方法签名说明
StringgetParaent返回 File 对象的父目录文件路径
StringgetName返回 FIle 对象的纯文件名称
StringgetPath返回 File 对象的文件路径
StringgetAbsolutePath()返回 File 对象的绝对路径
StringgetCanonicalPath()返回 File 对象的修饰过的绝对路径
booleanisDirectory()判断 File 对象代表的文件是否是一个目录
booleanexists()判断 File 对象描述的文件是否真实存在
booleanisFile()判断 File 对象代表的文件是否是一个普通文件
booleancreateNewFile()根据File对象,自动创建一个空文件。成功创建后返 true
booleandelete()根据 File 对象,删除该文件。成功删除后返回 true
String[]list()返回 File 对象代表的目录下的所有文件名
File[]listFiles()返回File对象代表的目录下的所有文件,以 File 对象表示
booleanmkdir()创建File 对象代表的目录
booleanmkdirs()创建File对象代表的目录,如果必要,会创建中间目录
booleanrenameTo(File dest)进行文件改名,也可以视为我们平时的剪切、粘贴操作
booleancanRead()判断用户是否对文件有可读权限
booleancanWrite()判断用户是否对文件有可写权限

请看举例:
在这里插入图片描述
在这里插入图片描述
示例2:
在这里插入图片描述
在这里插入图片描述
上图中通过getAbsolutePath()方法打印出来的目录是按照工作目录 + 当前目录来进行打印的(如果是在idea中运行程序的话,工作目录就是项目所在的目录,如果是在命令行中运行程序的话;工作目录就是命令行当前所在目录;如果程序运行在tomcat中则工作目录是在tomcat下的bin目录;所以工作目录会随着运行方式的不同而发生变化)。
示例三:
在这里插入图片描述
在这里插入图片描述
示例四:
在这里插入图片描述
在这里插入图片描述
注意:createNewFile方法是有可能抛出异常的,比如写入的路径是一个非法路径,比如我们要创建这个文件但是我们对文件所在的目录没有权限操作。
示例五(删除文件,等到程序运行结束的时候才对文件进行删除而非立即删除):
在这里插入图片描述
有时候我们会在程序运行的时候需要用到临时文件,等待程序结束的时候再把这个临时文件进行删除。
示例六(创建目录):
在这里插入图片描述
示例七(文件重命名和文件移动操作):
在这里插入图片描述

以上就是对文件系统的操作,都是通过File类来进行实现的。所以我们呢

本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦!!!

在这里插入图片描述

http://www.lryc.cn/news/271683.html

相关文章:

  • docker-compose 安装 RocketMq
  • 【心得】PHP反序列化高级利用(phar|session)个人笔记
  • MyBatisPlus之增删改查
  • pytorch03:transforms常见数据增强操作
  • blob文件流前端显示pdf
  • Android 接入第三方数数科技平台
  • LVM和磁盘配额
  • uni-app uni-app内置组件
  • C语言——格式说明符前面加修饰符
  • 实验室(检验科)信息系统LIS源码,客户端:WPF+Windows Forms
  • 有道翻译web端 爬虫, js
  • uni-app API接口扩展组件(uni-ui)
  • 信息化和数字化的本质区别是什么?
  • 发表《Nature》!美国研究团队发布可编程逻辑量子处理器
  • CISSP 第1章:实现安全治理的原则和策略
  • 【并发设计模式】聊聊线程本地存储模式如何实现的线程安全
  • 边缘计算网关:重新定义物联网数据处理
  • Linux之下载安装
  • 【HarmonyOS开发】案例-记账本开发
  • webrtc中的接口代理框架
  • 【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成
  • Jupyter Notebook的10个常用扩展介绍
  • uniapp项目如何引用安卓原生aar插件(避坑指南三)
  • YOLOv8改进 | 检测头篇 | ASFF改进YOLOv8检测头(全网首发)
  • 思维训练-怎样设计一个MQ
  • RK3399平台入门到精通系列讲解(导读篇)21天挑战Linux系统开发
  • 企业微信会话存档sdk报错:A fatal error has been detected by the Java Runtime Environment
  • nginx-docker 搭建websocket反向代理
  • blender插件开发
  • 【数据结构】二叉搜索(查找/排序)树