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

【JavaEE初阶】文件操作和IO

目录

🌴认识文件

 🚩树型结构组织和目录

🚩文件路径(Path)

🚩 文件分类

🎍Java 中操作文件

🚩 File 概述:

📌属性

📌构造方法

📌方法

🚩File使用实例代码演示

📌实例一

​编辑​编辑

📌实例二

📌实例三

📌实例四

📌实例五


🌴认识文件

什么叫文件IO?

Input 输入,Output 输出

我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存(也就是平时保存在硬盘上的这些文件),这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般。

那么上面的文件夹是否是文件?

  • 文件夹也是一种文件,称为"目录文件",也是保存在硬盘上的

 🚩树型结构组织和目录

同时,随着文件越来越多,对文件的系统管理也被提上了日程,如何进行文件的组织呢,一种合乎自然的想法出现了,就是按照层级结构进行组织 —— 也就是我们数据结构中学习过的树形结构。这样,一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓文件夹(folder)或者目录(directory)的概念。

🚩文件路径(Path)

由于文件非常多,目录也非常多,目录之间还能嵌套,需要在上述体系中,能够有一种方式标识某个具体的文件,通过这个机制就能具体定位到,找到某个文件。

路径:

从根节点出发,一层一层往下走,最终走到目标文件之后,中间这些目录集合在一起就够成了"路径"

例子:在D盘下呢有一个文件,这个文件怎么找到呢,先找到此电脑->D盘->ph,我们就可以通过d:/ph 就可以找到这个文件了(由于都是在此电脑路径下开始找的,所以此电脑就可以省略了)。

注意:

  • 目录与目录之间使用 / 或者 \ 分割,但是仅限于 Windows 上。

上述路径呢,是以盘符开头的路径,我们也称为"绝对路径"。

我们可以从任意结点出发,进行路径的描述,而这种描述方式就被称为相对路径(relative path),相对于当前所在位置为出发点的一条路径。从当前起点出发,我们把起点也称为"工作目录"。

比如:

🚩 文件分类

文件分类的方式有很多种,此处主要讨论一种和编写代码密切相关的。

文本文件 vs 二进制文件

文本数据:                                                             二进制数据:

日常常见的:

🎍Java 中操作文件

针对文件系统进行操作:

Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。进一步通过 File 提供的方法就可以文件系统操作了。

🚩 File 概述:

我们先来看看 File 类中的常见属性、构造方法和方法

📌属性

📌构造方法

一般使用第二种,字符串类型的路径,使用绝对路径/相对路径 都是可以的

📌方法

🚩File使用实例代码演示

📌实例一

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

也就是说这里的 d:/ph/text.txt 可能根本不存在(当然此路径是存在的)

我们观察输出,发现后面三个差不多都一样,那是因为上述路径是绝对路径。

我们改为相对路径试试:

📌实例二

当前文件的判定

绝对路径:

   ph是一个目录

相对路径:

📌实例三

普通文件的创建、删除

代码:创建

运行:                                             此时就创建出一个文件,IEAD左侧就可以看见了

代码:

直接删除:

运行:                                              此时文件已经被删除了

进程结束在删除:

输入前:                                                            输入后:此时文档已经被删除了

📌实例四

创建目录

代码:创建一级目录

运行:                                                      创建一级目录:

代码:创建多级目录

运行:                                                   创建多级目录:

📌实例五

文件重命名

代码:

运行之后:

针对文件内容操作下篇在叙述!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【基础篇】数据结构
  • 无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
  • 【Hot100】LeetCode—283. 移动零
  • [Spring] Spring AOP
  • 修复本地终端(windows)连接服务器使用zsh出现乱跳的问题
  • 有道云docx转换markdown,导入hugo发布到github page,多平台发布适配
  • 【Unity】案例 —— 胡闹厨房联机案例(持续更新)
  • css写一个按钮流光动画效果
  • Kubernetes-ingress
  • linux主机间免密登录
  • HBuidlerX 运行到Android App基座时提示没有检测到设备,该如何处理。
  • 002 | 常见的金融量化指标计算
  • Python电商网络数据采集实践||批量数据采集的API接口
  • 使用本地大模型从论文PDF中提取结构化信息
  • 深度学习--数据处理dataloader介绍及代码分析
  • __proto__ 和 prototype的关系
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【node学习】协程
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular 响应式表单之下拉框
  • js操作时间(持续更新)
  • Laravel 中的一个后期静态绑定
  • Linux后台研发超实用命令总结
  • maya建模与骨骼动画快速实现人工鱼
  • React系列之 Redux 架构模式
  • SQLServer之创建显式事务
  • vue-router的history模式发布配置
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 京东美团研发面经
  • 力扣(LeetCode)56
  • 前端之React实战:创建跨平台的项目架构
  • 使用parted解决大于2T的磁盘分区
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 用 Swift 编写面向协议的视图
  • 《天龙八部3D》Unity技术方案揭秘
  • ionic入门之数据绑定显示-1
  • scrapy中间件源码分析及常用中间件大全
  • ​configparser --- 配置文件解析器​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #NOIP 2014#Day.2 T3 解方程
  • #pragam once 和 #ifndef 预编译头
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (27)4.8 习题课
  • (4)事件处理——(7)简单事件(Simple events)
  • (C++20) consteval立即函数
  • (Charles)如何抓取手机http的报文
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (论文阅读11/100)Fast R-CNN