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

【Java】文件操作和IO

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • 文件
    • 概念
    • 文件的分类
    • 常见的文件类型
    • 文件系统的目录结构
    • 路径
  • Java中的文件操作
    • 文件系统相关操作
      • 绝对路径
      • 相对路径
    • 文件是否存在
      • 绝对路径
      • 相对路径
    • 文件的创建和删除
      • 创建文件
      • 删除文件
    • 创建目录
      • 创建一级目录
      • 创建多级目录
    • 输出文件
      • 通过list列出文件
      • 通过File对象来输出
      • 重命名文件

文件

概念

普通的文件是保存在硬盘上的
网卡:操作系统把这样的硬件设备也抽象成一个文件,用来简化开发。显示器、键盘都被操作系统视为文件

文件的分类

1.文本文件:我们看到的里面存储的是字符。但文本文件本质上存的是字节。
2.二进制文件:存储的是字节。
判断一个文件是不是二进制编码,用记事本打开就好。打开是乱码,就是二进制文件,不是乱码就是文本文件。
在这里插入图片描述
是乱码,就说明这个文件在存储的时候是以二进制存储的。

常见的文件类型

  1. .txt,.c,.java 都是文本文件
  2. .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上传项目的代码,值得注意的是&#xff0c…...

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 之间,简洁方便,易学易用&#xff0…...

一、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绑定参数

说明 将框架弹框组件 封装成子组件&#xff0c;在页面中引用该子组件&#xff0c;传参并控制弹框显示与隐藏。 子组件 <template><view><wh-modal :show"showPopup" :descr"descr" maskClosable click"onClick" :buttons"…...

【电路笔记】-正弦波形

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

Failed to launch task: 文件”Setup”不存在 Mac安装Adobe软件报错解决方案

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

什么是 DevOps

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

4个维度解析QKeyMapper:如何通过全设备协同开源工具实现操作自由

4个维度解析QKeyMapper&#xff1a;如何通过全设备协同开源工具实现操作自由 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper&#xff0c;Qt开发Win10&Win11可用&#xff0c;不修改注册表、不需重新启动系统&#xff0c;可立即生效和停止。支持游戏手柄映射到键鼠&…...

PalmSens4电化学分析仪

集恒电位/恒电流/阻抗分析&#xff08;EIS&#xff09;于一体&#xff0c;电池USB双供电&#xff0c;带蓝牙与触屏&#xff0c;支持循环伏安&#xff08;CV/FCV&#xff09;、线性扫描&#xff08;LSV&#xff09;、差分脉冲&#xff08;DPV&#xff09;、方波伏安&#xff08;…...

Ubuntu 是什么?能干嘛?为啥 90% 的开发者都选它?一文读懂开源操作系统的王者之道!

Ubuntu是什么&#xff1f;能干嘛&#xff1f;为啥90%的开发者都选它&#xff1f;一文读懂开源操作系统的王者之道&#xff01; 摘要&#xff1a;Ubuntu作为全球最受欢迎的Linux发行版&#xff0c;占据Linux桌面市场40%以上份额&#xff0c;云端市场份额高达70%。本文将深入解析…...

Wan2.2-T2V-A5B科研工具链:Matlab数据可视化与模型输入预处理

Wan2.2-T2V-A5B科研工具链&#xff1a;Matlab数据可视化与模型输入预处理 1. 引言 做科研的朋友们&#xff0c;你们有没有遇到过这样的场景&#xff1a;手头有一堆宝贵的实验数据&#xff0c;想用Wan2.2-T2V-A5B这样的文生视频模型&#xff0c;把数据背后的科学故事“演”出来…...

代码质量与测试框架:front-end-roadmap教你编写高质量前端代码

代码质量与测试框架&#xff1a;front-end-roadmap教你编写高质量前端代码 【免费下载链接】front-end-roadmap Tell you how to learn front end development ~ 项目地址: https://gitcode.com/gh_mirrors/fr/front-end-roadmap front-end-roadmap是一个专注于前端开发…...

dl-librescore:开源乐谱下载解决方案,打破MuseScore资源获取限制

dl-librescore&#xff1a;开源乐谱下载解决方案&#xff0c;打破MuseScore资源获取限制 【免费下载链接】dl-librescore Download sheet music 项目地址: https://gitcode.com/gh_mirrors/dl/dl-librescore 在音乐创作、教学和学习过程中&#xff0c;获取高质量乐谱资源…...

Nano-Banana企业级部署:支持API接入PLM系统,打通产品数据链路

Nano-Banana企业级部署&#xff1a;支持API接入PLM系统&#xff0c;打通产品数据链路 1. 引言&#xff1a;企业级部署的价值与意义 在现代制造业和设计行业中&#xff0c;产品数据管理一直是个令人头疼的问题。设计师创作的产品分解图、技术团队制作的结构示意图、营销部门需…...

GLM-4-9B-Chat-1M多语言法律文书生成:中英双语合同条款自动起草

GLM-4-9B-Chat-1M多语言法律文书生成&#xff1a;中英双语合同条款自动起草 1. 项目简介与核心价值 法律文书起草是法律工作中的重要环节&#xff0c;但传统方式耗时耗力且容易出错。GLM-4-9B-Chat-1M模型的出现&#xff0c;为法律文书生成带来了全新的解决方案。 这个基于v…...

终极指南:如何用BetterGI智能辅助工具彻底解放你的原神游戏体验

终极指南&#xff1a;如何用BetterGI智能辅助工具彻底解放你的原神游戏体验 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连…...

Emotion2Vec+ Large多语种支持实测:中文英文情感识别效果对比

Emotion2Vec Large多语种支持实测&#xff1a;中文英文情感识别效果对比 1. 引言 语音情感识别技术正在改变我们与机器交互的方式。想象一下&#xff0c;当你在电话客服中表达不满时&#xff0c;系统能立即识别你的愤怒情绪并转接高级客服&#xff1b;当你在语言学习中发音时…...