【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.mzph.cn/news/591377.shtml

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

相关文章

计算机网络——基础知识汇总(八)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

学习Go语言Web框架Gee总结--上下文Context(二)

学习Go语言Web框架Gee总结--上下文Context context/go.modcontext/main.gocontext/gee/context.gocontext/gee/router.gocontext/gee/gee.go 学习网站来源:Gee 项目目录结构: context/go.mod module examplego 1.21.5require gee v0.0.0 replace gee…

【23-24 秋学期】NNDL 作业13 优化算法3D可视化

编程实现优化算法,并3D可视化 1. 函数3D可视化 分别画出 和 的3D图 代码如下: from mpl_toolkits.mplot3d import Axes3D import numpy as np from matplotlib import pyplot as plt import torch from nndl.op import Op# 画出x**2 class Optimized…

查看ios 应用程序性能

目录 摘要 前言 性能概括 CPU内存监控 内存监控 磁盘监控 网络监控 GPU fps 摘要 本篇博文将介绍一款重量级性能测试工具——克魔助手,针对iOS应用程序的性能监控进行详细介绍。通过克魔助手,开发者可以方便地查看应用程序的CPU、内存、GPU性能…

【Python】配置环境变量

Python配置Windows系统环境变量 打开电脑属性 ——> 高级系统设置 ——> 高级 ——> 环境变量 Python安装目录 D:\Program Files\Python39 winR打开运行,输入cmd打开命令窗口 python -V

基于Java SSM框架实现停车场管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现停车场管理系统演示 摘要 以往的停车场管理事务处理主要使用的是传统的人工管理方式,这种管理方式存在着管理效率低、操作流程繁琐、保密性差等缺点,长期的人工管理模式会产生大量的文本车辆上报与文本数据,这对事务的…

Latex使用BibTeX添加参考文献,保持专有名词原格式,如全部大写方法

一、背景 当我们使用Latex写文章时,通常使用BibTeX的方式添加参考文献,这种方式非常方便,可以使用期刊定义好的参考文献格式。但有时,某篇参考文献题目中含有专有名词时,如DMPs,参考文献会自动将其转为小写…

Android ImageView的Bitmap在scaleType情况下Bitmap顶部与底部RectF坐标,Kotlin

Android ImageView的Bitmap在scaleType情况下&#xff0c;Bitmap顶部与底部RectF坐标&#xff0c;Kotlin 通常&#xff0c;在ImageView设置scaleType后&#xff0c;Android会把原始图片通过缩放放在ImageView里面&#xff0c;例如&#xff1a; <ImageViewandroid:id"id…

【心得】PHP反序列化高级利用(phar|session)个人笔记

目录 ①phar反序列化 ②session反序列化 ①phar反序列化 phar 认为是java的jar包 calc.exe phar能干什么 多个php合并为独立压缩包&#xff0c;不解压就能执行里面的php文件&#xff0c;支持web服务器和命令行 phar协议 phar://xxx.phar $phar->setmetadata($h); m…

Redis:原理+项目实战——Redis实战2(Redis实现短信登录(原理剖析+代码优化))

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理项目实战——Redis实战1&#xff08;session实现短信登录&#xff08;并剖析问题&#xff09;&#xff09…

实现CodeWave 低代码开发平台快速应用开发的完整指南

目录 前言1 CodeWave开发流程2 应用创建2.1 新建应用2.2 从应用模板创建应用 3 数据模型设计3.1 实体设计3.2 结构设计3.3 枚举设计 4 逻辑设计4.1 查询数据源设置4.2 组件和属性配置4.3 属性设置与服务端全局变量 5 页面设计5.1 选择页面模板5.2 前端全局变量设计5.3 事件逻辑…

cocos creator + vscode debug

安装插件 安装插件&#xff1a;JavaScript Debugger 配置 7456 为本地cocos creator的启动端口 启动debug调试 选择对应的启动方式

彻底理解前端安全面试题(2)—— CSRF 攻击,跨站请求伪造攻击详解,建议收藏(含源码)

前言 前端关于网络安全看似高深莫测&#xff0c;其实来来回回就那么点东西&#xff0c;我总结一下就是 3 1 4&#xff0c;3个用字母描述的【分别是 XSS、CSRF、CORS】 一个中间人攻击。当然 CORS 同源策略是为了防止攻击的安全策略&#xff0c;其他的都是网络攻击。除了这…

免费下载的高清影像如何使用?

由于该影像数据为DAT格式&#xff0c;因此这里以“北京”影像数据为例&#xff0c;为大家分享一下它的查看与导出等使用方法。 卫星影像数据示例 我们上传到百度网盘中的北京高清卫星影像数据有37.8GB&#xff0c;除了卫星影像数据和地名标签外&#xff0c;还包括接图表和常用…

SpringBoot灵活集成多数据源(定制版)

如来说世界&#xff0c;非世界&#xff0c;是名世界 如来说目录&#xff0c;非目录&#xff0c;是名目录 前言前期准备代码实现演示扩展 前言 本篇博客基于SpringBoot整合MyBatis-plus&#xff0c;如果有不懂这个的&#xff0c; 可以查看我的这篇博客&#xff1a;快速CRUD的秘诀…

信息化和数字化的本质区别是什么?

信息化和数字化是两个概念的区别 它们有什么区别和联系呢&#xff1f;信息化&#xff1a;“业务数据化”&#xff0c;先让业务流程能被数据记录下来。信息化“业务数据化”。数字化&#xff1a;“数据业务化”&#xff0c;用已累积的业务数据去反哺优化业务流程。数字化“数据…

C++:继承(这一篇就够了)

C&#xff1a;继承&#xff08;这一篇就够了&#xff09; 一、继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与静态…

可穿戴智能设备应用领域以及使用意义分别有哪些?

可穿戴智能设备有哪些&#xff1f; 可穿戴智能设备是指可以佩戴在身上&#xff0c;具有智能功能和交互能力的电子设备。以下是一些常见的可穿戴智能设备&#xff1a; 智能手表&#xff1a;智能手表结合了传统手表的功能和智能设备的特性&#xff0c;可以显示时间、接收通知、监…

Linux下一切皆文件

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 你是否听过Linux下一切皆文件&#xff1f; 在哪里我们体悟到了Linux下一切皆文件&#xff1f; 文件是什么&#xff1f; 在哪里体悟到的&#xff1f; 常见疑惑 怎么办到的Linux下一切皆文件&#xff1f; 我们抛出…

LED显示屏常用驱动芯片一览表

LED显示屏驱动芯片是专门用于驱动LED显示屏的核心芯片&#xff0c;它能够将输入的电信号转化为驱动能力&#xff0c;以控制LED灯的亮度和颜色。LED显示屏驱动芯片具有高可靠性、低功耗、长寿命等优点&#xff0c;是LED显示屏产业的核心零部件之一。 SM16306SJ LED显示屏驱动芯…