文件系统和IO流

目录

​文件系统和IO流

一:文件的认知

认识文件

树型结构组织和⽬录:

文件路径(Path):

文件形式:

二:File的方法

File的概述:

File的属性

File的构造方法

File常用的get系列方法

  • ⽰例一:观察get系列的特点和差异

File常用的增,删方法

  • 示例二:普通文件的创建、删除(代码结果已写在该代码后面)

File常用的生成目录的系列方法

  • 示例三:目录的创建:mkdir()的时候,如果中间目录不存在,则无法创建成功;mkdirs()可以解决这个问题(代码结果已写在该代码后面)

在这里插入图片描述

一:文件的认知

认识文件

我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成⼀个整体,而是独立成⼀个个的单位进行保存,这个独立的单位就被抽象成⽂件的概念,就类似办公桌上的⼀份份真实的文件⼀般。文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数
据而存在,我们把这部分信息可以视为文件的元信息.

树型结构组织和⽬录:

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

文件路径(Path):

如何在⽂件系统中如何定位我们的⼀个唯⼀的文件就成为当前要解决的问题,但这难不倒计算机科学家

  • 绝对路径(absolute   path):从树型结构的⻆度来看,树中的每个结点都可以被⼀条从根开始,⼀直到达的结点的路径所描述
  • 相对路径(relative path):从任意结点出发,进行路径的描述

文件形式:

  • 二进制文件:按照标准格式保存的非被字符集编码过的文件,也就是通过记事本打开,里面存储的都是看不懂的乱码.
  • 文本文件:保存被字符集编码的文本,打开就是文件的内容.

二:File的方法

File的概述:


主要涉及文件的元信息、路径的操作,Java中通过 java.io.File 类来对⼀个文件(包括目录)进行抽象的描述。注意,有File对象,并不代表真实存在该文件,我们先来看看File 类中的常见属性、构造方法和方法

File的属性

修饰符及类型属性说明
static       StringpathSeparator依赖于系统的路径分隔符,String
类型的表⽰
static   charpathSeparator依赖于系统的路径分隔符,char类
型的表⽰

File的构造方法

签名说明
File(File          parent,        String        child)根据⽗⽬录+孩⼦⽂件路径,创建⼀个新的File实例
File(String        pathname)根据⽂件路径创建⼀个新的File实例,路径可以是绝
对路径或者相对路径
File(String        parent,        String        child)根据⽗⽬录+孩⼦⽂件路径,创建⼀个新的File实
例,⽗⽬录⽤路径表⽰

File常用的get系列方法

修饰符及返回值类型方法签名说明
StringgetParent()返回File对象的⽗⽬录⽂件路径
StringgetName()返回FIle对象的纯文件名称
StringgetPath()返回File对象的⽂件路径
StringgetAbsolutePath()返回File对象的绝对路径
StringgetCanonicalPath()返回File对象的修饰过的绝对路径

  • ⽰例一:观察get系列的特点和差异

import java.io.File;
import java.io.IOException;
public class Test {public static void main(String[] args) throws IOException {File file = new File("..\\hello-world.txt"); // 并不要求该⽂件真实存System.out.println(file.getParent());System.out.println(file.getName());System.out.println(file.getPath());System.out.println(file.getAbsolutePath());System.out.println(file.getCanonicalPath());}
}

代码结果:

File常用的增,删方法

booleanexists()判断File对象描述的⽂件是否真实存在
booleanisDirectory()判断File对象代表的⽂件是否是⼀
个⽬录
booleanisFile()判断File对象代表的⽂件是否是⼀
个普通⽂件
booleancreateNewFile()根据File对象,⾃动创建⼀个空⽂
件。成功创建后返回true
booleandelete()根据File对象,删除该⽂件。成功
删除后返回true
voiddeleteOnExit()根据File对象,标注⽂件将被删
除,删除动作会到JVM运⾏结束时
才会进⾏

  • 示例二:普通文件的创建、删除(代码结果已写在该代码后面)

import java.io.File;
import java.io.IOException;
public class Test {public static void main(String[] args) throws IOException {File file = new File("hello-world.txt"); // 要求该⽂件不存在,才能看System.out.println(file.exists());                //falseSystem.out.println(file.isDirectory());           //falseSystem.out.println(file.isFile());                //falseSystem.out.println(file.createNewFile());         //trueSystem.out.println(file.exists());                //trueSystem.out.println(file.isDirectory());           //falseSystem.out.println(file.isFile());                //trueSystem.out.println(file.createNewFile());         //falseSystem.out.println(file.delete());                //trueSystem.out.println(file.exists());                 //false}
}

File常用的生成目录的系列方法

String[]list()返回File对象代表的⽬录下的所有
⽂件名
File[]listFiles()返回File对象代表的⽬录下的所有
⽂件,以File对象表⽰
booleanmkdir()创建File对象代表的⽬录
booleanmkdirs()创建File对象代表的⽬录,如果必
要,会创建中间⽬录
booleanrenameTo(File dest)进⾏⽂件改名,也可以视为我们平
时的剪切、粘贴操作
booleancanRead()判断⽤⼾是否对⽂件有可读权限
booleancanWrite()判断⽤⼾是否对⽂件有可写权限

  • 示例三:目录的创建:mkdir()的时候,如果中间目录不存在,则无法创建成功;mkdirs()可以解决这个问题(代码结果已写在该代码后面)

import java.io.File;
import java.io.IOException;
public class Test {public static void main(String[] args) throws IOException {File dir = new File("some-parent\\some-dir"); // some-parent 和 soSystem.out.println(dir.isDirectory());                  //trueSystem.out.println(dir.isFile());                       //falseSystem.out.println(dir.mkdirs());                       //trueSystem.out.println(dir.isDirectory());                  //falseSystem.out.println(dir.isFile());                       //false}
}

如果觉得文章不错,期待你的一键三连哦,你个鼓励是我创作的动力之源,让我们一起加油,顶峰相见!!!💓 💓 💓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633627.shtml

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

相关文章

Unity 编辑器篇|(十)Handles (全面总结 | 建议收藏)

目录 1. 前言2 参数总览3 Handles两种使用方式3.1 基于Editor类的OnSceneGUI3.2 基于EditorWindow 4 Handles绘制4.1 Draw:绘制元几何体(点、线、面)4.1.1 抗锯齿: DrawAAPolyLine 、 DrawAAConvexPolygon4.1.2 绘制实线: DrawLine 、 DrawLines 、DrawP…

排序:非递归的归并排序

目录 递归与非递归的思想对比: 递归: 非递归: 代码解析: 完整代码: 递归与非递归的思想对比: 递归: 在之前的归并排序,它的核心思想是通过不断的分割,从一个数组变…

HTML 表单

文章目录 表单什么是表单GET和POST两种提交方式有什么不同?表单元素表单项外文本单行文本输入框单行文本密码框单选框复选框下拉列表框上传文件隐藏域填写邮箱填写电话填写数字填写日期进度条多行文本输入框提交按钮取消按钮 用户注册案例 表单 什么是表单 form:表单元素 此…

机器人强化学习-双机械臂

概要 基于 robosuite 库,进行双臂机器人学习训练 环境测试 下面展示下分别控制两个机械手随机运动的画面: 双臂显示场景如下:双臂调用代码如下: import numpy as np import robosuite as suite import robomimic import rob…

【vue2】状态管理之 Vuex

文章目录 一、介绍1、概念 2、工作示意图3、安装4、简单示例 二、核心1、State1.1 组件中获取 Vuex 的状态1.2 mapState 辅助函数1.3 对象展开运算符 2、Getter2.1 基本使用2.2 通过属性访问2.3 通过方法访问2.4 mapGetters 辅助函数 3、Mutation3.1 定义 mutation3.2 commit 提…

多线程排序(java版)

📑前言 本文主要是【排序】——多线程排序的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#x…

Docker-02-镜像项目部署

Docker-02-镜像&项目部署 文章目录 Docker-02-镜像&项目部署一、镜像①:镜像结构②:Dockerfile③:构建镜像01:构建02:查看镜像列表03:运行镜像 二、网络①:容器的网络IP地址②&#xff…

数据中心负载测试的常用工具和技术有哪些?

数据中心负载测试是评估系统在高负载下的性能和稳定性的重要手段。通过模拟大量用户并发访问,可以检测系统的瓶颈和潜在问题,为优化系统性能提供依据。以下是一些常用的数据中心负载测试工具和技术: Apache JMeter:JMeter是一个开…

《世界之外》提前开测,网易打响国乙大战

1月18日,国乙市场迎来了一场大战。 原定于1月26日开服的网易新乙游《世界之外》,突然宣布在1月18日进行不删档、不限量测试,从某种意义上来说,其实就等同于提前公测。 而同一天开服的还有叠纸的全新3D乙游《恋与深空》&#xff…

基于R语言的NDVI的Sen-MK趋势检验

本实验拟分析艾比湖地区2010年至2020年间的NDVI数据,数据从MODIS遥感影像中提取的NDVI值,在GEE遥感云平台上将影像数据下载下来。代码如下: import ee import geemap geemap.set_proxy(port7890)# 设置全局网络代理 Map geemap.Map()# 指定…

2024年宜昌市中级职称评定条件能力业绩要求是什么?

1.参与完成 4 项中型以上工程建筑项目的勘察、设计,并通过审查 2.参与完成标准(含国家标准、行业标准、地方标准、团体、标准)、省级标准设计,参与工法、管理办法、规定、规程细则的编写,并正式发布实施 3.参与完成新技…

文件上传时报413错误

原因:nginx上传文件大小有限制,如果不配置nginx上传文件大小,则上传时会出现 413 (Request Entity Too Large) 异常(请求实体过大) 解决方案:1、打开nginx主配置文件nginx.conf,找到http{ }&…

go语言(三)----函数

1、函数单变量返回 package mainimport "fmt"func fool(a string,b int) int {fmt.Println("a ",a)fmt.Println("b ",b)c : 100return c}func main() {c : fool("abc",555)fmt.Println("c ",c)}2、函数多变量返回 pack…

表的增删改查CURD(基础)

🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 新增(Create) 全列插入 指定列…

高校教务系统登录页面JS分析——河北地质大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密码加…

鹅厂有料有趣的程序员交流圈重磅官宣!加入立享福利

号外!腾讯云开发者社区重磅上线海量社群,覆盖开发者技术学习交流、工作成长、生活分享等多元场景需求,用最新鲜的内容,最好玩的互动,与你一起共创最有料有趣的技术人交流圈~ 最有料有趣交流圈在这里你可以畅…

Git学习笔记(第5章):Git团队协作机制

目录 5.1 团队内协作 5.2 跨团队协作 Git进行版本控制都是在本地库操作的。若想使用Git进行团队协作,就必须借助代码托管中心。 5.1 团队内协作 问题引入:成员1(大佬)利用Git在宿主机上初始化本地库,完成代码的整体…

thinkphp+vue+mysql大学生心理健康测试分析系统g4i4o

学生心里测试分析系统由管理员和学生、教师交互构成。学生对于本系统的使用,学生可以通过系统注册、登录,修改个人信息,查看交流区、心理测试卷、新闻资讯等功能。 教师对于本系统的使用,教师可以通过系统注册、登录,修…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

人工智能之卷积神经网络(CNN)

前言:今天我们重点探讨一下卷积神经网络(CNN)算法。 _ 20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络CNN(Convo…