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

javaEE-文件操作和IO-文件

目录

一.什么是文件

1.文件就是硬盘(磁盘)上的文件。

2.计算机中存储数据的设备:

3.硬盘的物理特征

4.树型结构组织和⽬录

5.文件路径

文件路径有两种表示方式:

6.文件的分类

二、java中文件系统的操作

1.File类中的属性:

2.构造方法:

3.方法:

参考代码:


一.什么是文件

1.文件就是硬盘(磁盘)上的文件。

对于计算机(电脑)来说,文件是一个广义的概念:硬盘上的普通文件,和目录(文件夹)都称为文件。很多硬件设备也被操作系统抽象成立了文件:键盘,鼠标,显示器......

2.计算机中存储数据的设备:

cpu(寄存器/缓存),内存,硬盘

对这三者进行性能比较:

性能存储速度存储空间价格是否会丢失
cpu最快最小最贵
内存中等其次其次
硬盘最慢最大最便宜不会

软件上的很多特性都和硬盘有关。

3.硬盘的物理特征

上图左面就是一个简单磁盘,白色的是磁片,在工作的时候磁片高速旋转;磁头是一个很小的针头,能够感知到磁性的变化,磁头悬停在盘片上的不同位位置,就能感知到磁性的数据信息。

一个很大的文件,将其复制到另一个文件中,这属于顺序读写;若将很多个很小的目录(文件夹),所有目录都拷贝一份,这属于随机读写。

因为 目录在硬盘上是随机存储的,对于一个硬盘来说,更擅长顺序读写,不擅长随机读写。

此外,要拆开物理硬盘时,要在无尘的实验室中,因为一旦有灰尘落到盘片上,在高速旋转下,磁头会被打坏。

4.树型结构组织和⽬录

随着⽂件越来越多,对⽂件的系统管理也被提上了⽇程。按照层级结构进⾏组织也就是我们数据结构中学习过的树形结构。这样, ⼀种专⻔⽤来存放管理信息的特殊⽂件诞⽣了,也就是我们平时所谓⽂件夹(folder)或者⽬录(directory)的概念。

上面图片中的这些都属于文件。

5.文件路径

操作系统使用“文件路径”这样的概念来描述一个文件的具体位置

类似于: C:/users/1/test.exe

在windows系统上,从根节点开始(盘符),一级一级向下走,走到文件的位置,这中间的所用路径用“/”或“\”分割表示,就构成了路径。

文件路径有两种表示方式:

1.绝对路径:从根目录开始,一级一级向下走,走到目标文件的位置。

2.相对路径:不从根节点开始,从指定目录开始,以此目录为基准目录(当前目录),到指定文件的位置。

有一个文件路径:C:/Users/1/test.txt

在应用开发中,更多用到的时相对路径。分隔符可以用正斜杠,也可以用反斜杠,但更支持使用正斜杠,反斜杠在某些语言中(C,C++....)还涉及到转义字符等.....

6.文件的分类

文件分为 二进制文件 和 文本文件

 怎样区分一个文件是 二进制文件 还是 文本文件?

将该文件用记事本打开,若能看懂里面的内容,就是文本文件,若是看不懂的乱码,就是二进制文件。

文本文件 都是一“文本”或字符串来理解文件内容的(里面的二进制内容都是字符串,有对应的字符编码);二进制文件里面的内容都是合法的字符,没有编码的限制,可以存储任何数据。

每种字符编码都有对应的码表。

这种就属于二进制文件,打开的内容都是一些乱码。

这种就属于文本文件。

二、java中文件系统的操作

java中通过 java.io.File 类来对⼀个⽂件(包括⽬录)进⾏抽象的描述。注意,有 File对象, 并不代表真实存在该⽂件。

IO:指得是输入输出:文件从 硬盘到 cpu是输入;从cpu 到 硬盘是输出。

1.File类中的属性:

2.构造方法:

这里更多使用第二种构造方法。

此处的路径可以是不存在的。

3.方法:

参考代码:

public static void main(String[] args) throws IOException {//在D盘创建一个文件夹,名为io,在io中创建一个文件夹,名为1,// 在1文件夹中创建一个test.txt 文件File file = new File("D:/io/1/test.txt");////1.String getParent() 返回File对象的⽗⽬录⽂件路径System.out.println("⽗⽬录⽂件路径: "+file.getParent());// D:\io\1//2.String getName() 返回FIle对象的纯⽂件名称System.out.println("纯⽂件名称: "+file.getName());// test.txt//3.String getPath() 返回File对象的⽂件路径System.out.println("⽂件路径: "+file.getPath());//  D:\io\1\test.txt//4.String getAbsolutePath() 返回File对象的绝对路径System.out.println("绝对路径: "+file.getAbsolutePath());//  D:\io\1\test.txt//5.String getCanonicalPath() 返回File对象的修饰过的绝对路径System.out.println("修饰过的绝对路径: "+file.getCanonicalPath());// D:\io\1\test.txt//6.boolean exists() 判断File对象描述的⽂件是否真实存在System.out.println("⽂件是否真实存在: "+file.exists());// true//7.boolean isDirectory() 判断File对象代表的⽂件是否是⼀个⽬录System.out.println("否是⼀个⽬录: "+file.isDirectory());// false//8.boolean isFile() 判断File对象代表的⽂件是否是⼀个普通⽂件System.out.println("是否是⼀个普通⽂件:"+file.isFile());// true//4.String[] list() 返回File对象代表的⽬录下的所有⽂件名System.out.println("File对象代表的⽬录下的所有⽂件名: "+file.list()); //null//File[] listFiles() 返回File对象代表的⽬录下的所有⽂件,以File对象表⽰System.out.println("File对象代表的⽬录下的所有⽂件,以File对象表⽰: "+file.listFiles());// nullFile file1 = new File("./1.txt");//1.boolean createNewFile() 根据File对象,⾃动创建⼀个空⽂件。成功创建后返回trueSystem.out.println("创建⼀个空⽂件: "+file1.createNewFile()); //true//        //2.boolean delete() 根据File对象,删除该⽂件。成功删除后返回true
//        System.out.println("删除该⽂件: "+file1.delete()); //true
//
//        //3.void deleteOnExit() 根据File对象,标注⽂件将被删除,
//        // 删除动作会到JVM运⾏结束时才会进⾏
//        file1.deleteOnExit();
////1.boolean mkdir() 创建File对象代表的⽬录File file2 = new File("./aaa"); System.out.println(file2.mkdir());  //true//2.boolean mkdirs() 创建File对象代表的⽬录,如果必要,会创建中间⽬录File file3 = new File("./aaa/bbb/ccc");System.out.println(file3.mkdirs());  // true//3.boolean renameTo(File dest) 进⾏⽂件改名,也可以视为我们平时的剪切、粘贴操作System.out.println("进⾏⽂件改名: "+file1.renameTo(file2));// false//4.boolean canRead() 判断⽤⼾是否对⽂件有可读权限System.out.println("⽤⼾是否对⽂件有可读权限: "+file2.canRead()); //true//5.boolean canWrite() 判断⽤⼾是否对⽂件有可写权限System.out.println("⽤⼾是否对⽂件有可写权限: "+file2.canWrite());//true}

相关文章:

javaEE-文件操作和IO-文件

目录 一.什么是文件 1.文件就是硬盘(磁盘)上的文件。 2.计算机中存储数据的设备: 3.硬盘的物理特征 4.树型结构组织和⽬录 5.文件路径 文件路径有两种表示方式: 6.文件的分类 二、java中文件系统的操作 1.File类中的属性: 2.构造方…...

2025跨年倒计时

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2025年跨年倒计时</title><style>/* 页…...

下载mysql免安装版和配置

1、下载地址 点击去官网下载https://downloads.mysql.com/archives/community/ 2、解压安装mysql 解压的文件夹是没有my.ini文件和data目录&#xff0c;需要我们自己去创建 根目录下创建my.ini&#xff0c;根目录创建data [mysql] default-character-setutf8[mysqld] #端口 po…...

代码模板-C语言常用的errno的名字、值以及对应关系?转换字符串函数?(errno.h, strerror; errno -l; man errno)

背景 errno.h是C 编程语言标准库中的头文件。它定义了使用符号errno &#xff08;“错误号”的缩写&#xff09;报告和检索错误情况的宏。经常需要用来在内核态用户态返回错误寻找&#xff0c;本文以供快速检索。 常用函数与用法 strerror 根据errno获取文件 比如&#xff…...

全新免押租赁系统助力商品流通高效安全

内容概要 全新免押租赁系统的推出&#xff0c;可以说是一场商品流通领域的小革命。想象一下&#xff0c;不再为押金烦恼&#xff0c;用户只需通过一个简单的信用评估&#xff0c;就能快速租到所需商品&#xff0c;这种体验简直令人惊喜&#xff01;这个系统利用代扣支付技术&a…...

5.微服务灰度发布落地实践(rocketmq增强)

文章目录 前言发送端灰度增强订阅端灰度增强 前言 上一篇分析了&#xff0c;在灰度发布实现中为什么要对消息队列灰度发布进行增强。本篇主要介绍如何实现rocketmq 灰度发布的增强. 发送端灰度增强 订阅端灰度增强...

MySql核心面试面试问题解析

MySql核心面试面试问题解析 有时候往往简单的才是最容易失分的&#xff01;&#xff01;&#xff01; MySQL支持哪些存储引擎&#xff1f;有何区别&#xff1f; 答案&#xff1a;常见的存储引擎有InnoDB、MyISAM、Memory等。InnoDB支持事务&#xff0c;MyISAM不支持事务&#x…...

logback之自定义pattern使用的转换器

目录 &#xff08;1&#xff09;场景介绍 &#xff08;2&#xff09;定义转换器BizCallerConverter &#xff08;3&#xff09;logback配置conversionRule &#xff08;4&#xff09;测试效果 前文《logback之pattern详解以及源码分析》已经介绍了pattern&#xff0c;以及…...

【MySQL】发展起源与核心架构组件详细介绍

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《MySQL技术精粹》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、MySQL起源背景 2、MySQL发展里程 3、MySQL应用场景 二、MySQL的核心特…...

uni-app 多平台分享实现指南

uni-app 多平台分享实现指南 在移动应用开发中&#xff0c;分享功能是一个非常常见的需求&#xff0c;尤其是在社交媒体、营销活动等场景中。使用 uni-app 进行多平台开发时&#xff0c;可以通过一套代码实现跨平台的分享功能&#xff0c;涵盖微信小程序、H5、App 等多个平台。…...

Spring中的IOC是什么,优缺点有哪些?

目录 IOC的核心概念 IOC的优点 IOC的缺点 使用场景说明 总结 IOC&#xff08;控制反转&#xff09;是一种设计思想&#xff0c;用于实现低耦合、高内聚的软件架构。它通过将对象的创建和依赖管理交给外部容器来实现&#xff0c;从而减少对象之间的直接依赖关系。 IOC的核…...

Qt实现使用TCP与RS485串口设备通信————附带详细实践方法

文章目录 0 背景1 协议介绍1.1 modbusRTU协议1.1.1 简介1.1.2 RS485和modbusRTU的关系1.1.3 modbusRTU 协议格式1.1.3.1 0x10写多个保持寄存器1.1.3.2 0x02读多个离散输入寄存器1.1.3.3 0x03读多个保持寄存器1.1.3.4 0x04读多个输入寄存器 1.2 ModbusTCP协议1.2.1 ModbusTCP协议…...

js将object整个实体对象作为参数传递

①将object实体转化成json字符串传递&#xff1a; JSON.stringify(obj) ②将json字符串转化成JSON对象值&#xff1a;JSON.parse(json) 实际应用&#xff1a; <div id"div_notice" stylefont-size:14px; width:100%; height:200px; overflow-y:auto;></di…...

超越局部损失函数的预测-优化方法

1 文章信息 文章名为Leaving the Nest : Going Beyond Local Loss Functions for Predict-Then-Optimize。发表在第38届AAAI Conference on Artificial Intelligence. 作者来自哈佛大学。 2 摘要 预测-优化是一种利用机器学习在不确定性下进行决策的方法框架。其核心研究问…...

PDF预览插件

PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…...

node.js之---CommonJS 模块

CommonJS概念 在 Node.js 中&#xff0c;CommonJS 是一种模块化规范&#xff0c;它定义了如何在 JavaScript 中创建和使用模块。CommonJS 是 Node.js 使用的默认模块系统。它让开发者能够分离代码&#xff0c;便于重用和维护。 CommonJS 模块的基本特性 模块导出 在 CommonJ…...

关于AI面试系统2025年趋势评估!

在快速发展的科技浪潮中&#xff0c;AI技术正以前所未有的速度渗透到各行各业。企业招聘领域&#xff0c;作为人才选拔的关键环节&#xff0c;也不例外地迎来了AI面试系统的广泛应用和持续创新。2025年&#xff0c;AI面试系统不仅成为企业招聘的主流工具&#xff0c;更在智能化…...

SQL—替换字符串—replace函数用法详解

SQL—替换字符串—replace函数用法详解 REPLACE() 函数——查找一个字符串中的指定子串&#xff0c;并将其替换为另一个子串。 REPLACE(str, old_substring, new_substring)str&#xff1a;要进行替换操作的原始字符串。old_substring&#xff1a;要被替换的子串。new_substri…...

《Vue3实战教程》40:Vue3安全

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 安全​ 报告漏洞​ 当一个漏洞被上报时&#xff0c;它会立刻成为我们最关心的问题&#xff0c;会有全职的贡献者暂时搁置其他所有任务来解决这个问题。如需报告漏洞&#xff0c;请发送电子邮件至 securityvuejs.org。…...

软件项目验收测试需进行哪些测试?软件检测机构分享验收测试作用

在信息技术高速发展的今天&#xff0c;软件项目的验收测试作为软件开发生命周期中至关重要的一环&#xff0c;扮演着不可或缺的角色。软件项目验收测试是在软件开发完成后&#xff0c;依据需求文档和设计规范&#xff0c;对软件系统进行的一项综合性测试。其主要目的是验证开发…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...