【Java】文件操作和IO
❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:
文章目录
- 文件
- 概念
- 文件的分类
- 常见的文件类型
- 文件系统的目录结构
- 路径
- Java中的文件操作
- 文件系统相关操作
- 绝对路径
- 相对路径
- 文件是否存在
- 绝对路径
- 相对路径
- 文件的创建和删除
- 创建文件
- 删除文件
- 创建目录
- 创建一级目录
- 创建多级目录
- 输出文件
- 通过list列出文件
- 通过File对象来输出
- 重命名文件
文件
概念
普通的文件是保存在硬盘上的
网卡:操作系统把这样的硬件设备也抽象成一个文件,用来简化开发。显示器、键盘都被操作系统视为文件
文件的分类
1.文本文件:我们看到的里面存储的是字符。但文本文件本质上存的是字节。
2.二进制文件:存储的是字节。
判断一个文件是不是二进制编码,用记事本打开就好。打开是乱码,就是二进制文件,不是乱码就是文本文件。
是乱码,就说明这个文件在存储的时候是以二进制存储的。
常见的文件类型
- .txt,.c,.java 都是文本文件
- .doc,.ppt,.exe,.zip,.class 等都属于二进制文件
文件系统的目录结构
树形结构
路径
1.绝对路径:以盘符开头。例如:D:\BaiduNetdiskDownload\壁纸\1月日历.png。
2.相对路径:以点或点点 开头的,其中一个点是当前路径,两个点是当前路径的父路径(上级路径)
Java中的文件操作
Java当中的文件操作,主要有两类:
1.文件系统相关的操作:就是通过“文件资源管理器”能够完成一些功能。列出目录中有哪些文件,创建文件,创建目录,删除文件,重命名文件等等,Java 当中提供了一个 File 类,通过这个类来完成上述操作,File 类就描述了文件/目录。
2.文件内容相关的操作。
文件系统相关操作
1.Java 当中提供了一个 File 类,通过这个类来完成上述操作,File 类就描述了文件/目录。
2.基于这个对象就可以实现上面的这些功能。File 的构造方法,能够传入一个路径,来指定一个文件,这个路径可以是绝对路径也可以是相对路径。
3.构造好对象,就可以通过方法来实现一些功能。
绝对路径
在使用绝对路径的时候,在 File 的构造方法中写出来就行了,建议用 反斜杠,如果是用斜杠的话,就得再用一个斜杠来转义。所以建议用 反斜杠。代码如下:
public static void main(String[] args) throws IOException {//通过绝对路径来定位。File f1 = new File("d/Test1.txt");//获取到文件的父目录System.out.println(f1.getParent());//获取到文件名System.out.println(f1.getName());//获取到文件路径System.out.println(f1.getPath());//获取到绝对路径System.out.println(f1.getAbsolutePath());//获取到绝对路径System.out.println(f1.getCanonicalPath());
}
相对路径
1.说到相对路径,一样得先明确一个“基准路径”,代码中基准路径是啥:光看代码看不出来。
2.如果是通过 IDEA 的方式来运行程序,此时的基准路径就是当前项目所在的路径。此时的 基准路径 就是项目所在路径。
3.后续还会把一个 Java 代码打成 war 包,放到 Tomcat 上面去运行。这种情况下,基准路径 就是 Tomcat 的 bin 目录。
public static void main(String[] args) throws IOException {File f2 = new File("./Test1.txt");//获取到文件的父目录System.out.println(f2.getParent());//获取到文件名System.out.println(f2.getName());//获取到文件路径System.out.println(f2.getPath());//获取到绝对路径System.out.println(f2.getAbsolutePath());//获取到绝对路径System.out.println(f2.getCanonicalPath());
}
文件是否存在
绝对路径
通过绝对路径来看,文件是否存在,是否是一个目录,是否是一个普通文件:
public static void main(String[] args) {File f = new File("d:/Test1.txt");//判断文件是否存在System.out.println(f.exists());//判断文件是否是一个目录System.out.println(f.isDirectory());//判断文件是否是一个普通文件System.out.println(f.isFile());
}
相对路径
通过相对路径来看,文件是否存在,是否是一个目录,是否是一个普通文件:
public static void main(String[] args) {//换成相对路径就全是 false 了File f = new File("./Test1.txt");//判断文件是否存在System.out.println(f.exists());//判断文件是否是一个目录System.out.println(f.isDirectory());//判断文件是否是一个普通文件System.out.println(f.isFile());
}
文件的创建和删除
创建文件
通过 createNewFile 来创建文件,代码如下:
public static void main(String[] args) throws IOException {//文件的创建和删除File f = new File("./Test1.txt");System.out.println(f.exists());System.out.println("创建文件");f.createNewFile();System.out.println("创建文件结束");System.out.println(f.exists());
}
删除文件
通过 delete 方法直接删除,代码如下:
public static void main2(String[] args) {File f = new File("./Test1.txt");//删除文件,直接删除f.delete();
}
创建目录
创建一级目录
通过 mkdir 来创建目录。代码如下:
public static void main(String[] args) {File f = new File("./aaa");//创建目录f.mkdir();//说明已经创建好目录了。System.out.println(f.isDirectory());
}
创建多级目录
通过 mkdirs 来创建多级目录。代码如下:
public static void main(String[] args) {//创建多级目录File f = new File("./aaa/bbb/ccc/ddd");f.mkdirs();System.out.println(f.isDirectory());
}
输出文件
通过list列出文件
public static void main1(String[] args) {File f = new File("./");//把 ./ 目录下所有的目录全部列出来System.out.println(Arrays.toString(f.list()));
}
通过File对象来输出
public static void main(String[] args) {File f = new File("./");//通过 File 对象来输出。System.out.println(Arrays.toString(f.listFiles()));
}
重命名文件
通过 renameTo 来重命名文件。代码如下:
public static void main(String[] args) {File f = new File("./aaa");File f2 = new File("./zzz");//把 aaa 的名字改成 zzzf.renameTo(f2);
}
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章
相关文章:

【Java】文件操作和IO
❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 文件概念文件的分类常见的文件类型文件系统的目录结构路径 Java中的文件操作文件系统相关操作绝…...
uniapp页面间传参的方法
在uniapp中,常见的页面传参方式有以下几种: URL传参 可以在跳转页面时,在url中添加参数,通过在目标页面的onLoad函数中的options参数获取传递的参数。示例代码如下: 在源页面中: uni.navigateTo({url: …...

vsan 7.0.3部署后常见问题
一、数据库版本问题 https://partnerweb.vmware.com/service/vsan/all.json 登录可以访问 Internet 的工作站。在浏览器中打开以下链接: https://partnerweb.vmware.com/service/vsan/all.json (右键单击,另存为)将此文件另存为 all.json。如果无法保存…...

【Git】Git使用指南+上传项目踩坑总结
记录Git 使用和命令解读: git init git add .git commit -m "first commit"git branch -M maingit remote add origin https://github.com/xxx.gitgit push -u origin main 这是最经常用到的使用 git上传项目的代码,值得注意的是,…...

Django之登录注册
最近在准备上线一个网站(基于django的编程技术学习与外包服务网站),所以会将自己的在做这个项目的过程中遇到的模块业务以及所涉及到的部分技术记录在CSDN平台里,一是希望可以帮到有需要的同学,二十以供自己后续回顾学…...

Android 10-11适配外部存储方案
Android Api 29 对文件和文件夹进行了重大更改。不允许使用外部存储,如下方法: Environment.getExternalStorageDirectory() /mnt/sdcard Environment.getExternalStoragePublicDirectory(“test”) /mnt/sdcard/test 只能使用内部存储 getExterna…...

软件测试/测试开发丨Python:易学、强大、多用途的编程语言
点此获取更多相关资料 Python 发展历史 Python 是一门高级编程语言,由 Guido van Rossum(龟叔) 在 1989 年发明,设计 Python 语言的初衷是为了创造一种介于 C 和 shell 之间,简洁方便,易学易用࿰…...

一、VPN基础
VPN基础 1、定义及特征2、VPN优势3、VPN分类4、VPN体系结构5、VPN实现的模式 —————————————————————————————————————————————————— 1、定义及特征 虚拟专用网VPN是依靠Internet服务提供商ISP和网络服务提供商NSP在公共网…...

淘宝协议最新版
我可以为您提供一些示例代码,以演示一些与电商平台相关的功能。请注意,以下代码仅为示例,具体实现还需要根据您的应用程序的架构、技术栈和需求进行调整和扩展。 1. 用户注册功能: - 后端实现:在后端,您可…...

AI“走深向实”,蚂蚁蚁盾在云栖大会发布实体产业「知识交互建模引擎」
数字化起步晚、数据分散稀疏、专业壁垒高、行业知识依赖「老师傅」,是很多传统产业智能化发展面临的难题。2023年云栖大会上,蚂蚁集团安全科技品牌蚁盾发布“知识交互建模引擎”,将实体产业知识与AI模型有机结合,助力企业最快10分…...

如何估计池塘里鱼的数目,周边有多少车辆?
如何估计池塘里鱼的数目? 老李想估计一下自己池塘里鱼的数量,第一天他捕捞了50条鱼做好标记,然后全放回池塘。过了几天带标记的鱼完全混合于鱼群中,他又去捕捞了168条,发现做标记的鱼有8条。帮老李估算一下池塘里的鱼…...

docker中安装rabbitMq并配置启动
目录 1. 拉取镜像并安装(此处实例安装的是最新版)2.查看docker中已安装的镜像和版本3.启动RabbitMq4.配置管理端5.安装完成 1. 拉取镜像并安装(此处实例安装的是最新版) docker pull rabbitmq2.查看docker中已安装的镜像和版本 …...
viewfs://为Hadoop 中的一个特殊文件系统
解释 viewfs:// 是 Hadoop 中的一个特殊文件系统 URI,用于访问 Hadoop 的视图文件系统(ViewFS)。 ViewFS 是 Hadoop 提供的一种虚拟文件系统,它可以将来自多个底层文件系统的文件统一管理和访问。 通过 ViewFS,你可…...

UniPro自定义个人专属工作台 大幅提升工作效率
很多研发团队在开完每日站会后,工程师的工作习惯便是打开研发管理系统,先看看自己的待办事项,或是查看同事的需求、评论,亦或是查看今日份工作的高优先级项等等。 如何方便工程师能够快速查看和了解一天的工作究竟从哪开始呢&…...

python调用飞书机器人发送文件
当前飞书webhook机器人还不支持发送文件类型的群消息,可以申请创建一个机器人应用来实现群发送文件消息。 创建机器人后,需要开通一系列权限,然后发布。由管理员审核通过后,才可使用。 包括如下的权限,可以获取群的c…...

【产品应用】一体化伺服电机在焊接设备中的应用
随着制造业的不断发展,焊接设备在许多领域都得到了广泛应用,如汽车制造、机械加工、钢结构等领域。为了提高焊接设备的性能和效率,许多厂家开始采用一体化伺服电机作为焊接设备的主要驱动部件。本文将介绍一体化伺服电机在焊接设备中的应用背…...
uni+vue3+firstUI——组件弹框使用 v-model绑定参数
说明 将框架弹框组件 封装成子组件,在页面中引用该子组件,传参并控制弹框显示与隐藏。 子组件 <template><view><wh-modal :show"showPopup" :descr"descr" maskClosable click"onClick" :buttons"…...

【电路笔记】-正弦波形
正弦波 文章目录 正弦波1、概述2、波形产生3、总结 在 19 世纪末的 10 年间,许多技术成就使得交流电的使用得以扩展,并克服了直流电向公众供电的局限性。 1882 年,法国发明了变压器,它简化了交流电的分配,正如我们将在…...

Failed to launch task: 文件”Setup”不存在 Mac安装Adobe软件报错解决方案
在安装 Adobe 软件时,软件提示 Failed to launch task: 文件”Setup”不存在 ,这个时候怎么处理呢? 解决方法如下: 1、安装 AnitCC 或 或 Creative Cloud 环境,保证软件所需要的环境 2、如果安装后也不起作用&#x…...

什么是 DevOps
DevOps是一套融合软件开发(Dev)和 IT 运营(Ops)的实践,旨在缩短应用程序开发周期并确保以高软件质量持续交付,通过采用 DevOps 实践,您可以帮助组织更可靠、更快速、更高效地交付软件。 什么是…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
如何通过git命令查看项目连接的仓库地址?
要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...
无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
无需布线的革命:电力载波技术赋能楼宇自控系统 在楼宇自动化领域,传统控制系统依赖复杂的专用通信线路,不仅施工成本高昂,后期维护和扩展也极为不便。电力载波技术(PLC)的突破性应用,彻底改变了…...