【Java】文件操作(一)

在这里插入图片描述



文章目录

  • ✍一、文件的基本认识
    • 1.文件是什么?
    • 2.文本文件和二进制文件
    • 3.文件权限
    • 4.相对路径和绝对路径
      • 1.1绝对路径
      • 1.2相对路径
  • ✍二、文件的基本操作
    • 1.FIle的属性
    • 2.File的构造方法
    • 3.File类的方法
      • 3.1File类的获取操作
      • 3.2File类的判断操作
      • 3.3文件创建和删除
      • 3.4其他的常用方法

✍一、文件的基本认识

1.文件是什么?

文件是计算机中的基本数据单位,也是存储在外部介质(如磁盘、光盘等)上的具有标识名的一组相关信息的集合。文件的基本结构包括文件名、文件内容以及文件属性

文件可以是文本文档、图片、视频、音频、程序等各种类型。每个文件都有一个唯一的文件名,它用于标识和区分不同的文件。文件内容则是文件的主体部分,包含实际的数据或信息。文件属性则提供有关文件的附加信息,如创建日期、修改日期、大小、权限等。

在计算机系统中,文件通过文件系统来组织和管理。文件系统负责文件的存储、检索、保护和共享等操作。用户可以通过文件系统来创建、打开、编辑、保存和删除文件,从而实现数据的存储和传输。

文件在计算机中扮演着重要的角色,它们是数据交换和存储的主要方式之一。无论是个人用户还是企业组织,都依赖文件来保存和处理各种类型的信息。

2.文本文件和二进制文件

文本文件和二进制文件是计算机中两种主要的文件类型,它们在存储和处理数据时有着不同的特点和用途。

文本文件:

文本文件是一种由一系列字符组成的文件,通常用于存储人类可读的文本信息。文本文件中的字符通常使用ASCII、UTF-8或其他字符编码标准来表示。由于文本文件的内容是可读的文本,它们可以很容易地被人类阅读和编辑。常见的文本文件扩展名包括 .txt、.doc、.csv、.xml 等

文本文件通常用于存储简单的文本数据,如文档、配置文件、日志文件等。由于文本文件的内容是明文的,因此它们通常用于在不同系统和应用程序之间交换数据,因为这些系统和应用程序都能够理解并处理文本数据。

二进制文件:

二进制文件则是由一系列二进制位(0和1)组成的文件,用于存储机器可读的数据。这些数据可能是程序、图像、音频、视频或其他非文本信息。二进制文件的内容通常对人类来说是不可读的,需要使用特定的软件或工具来解析和显示。常见的二进制文件扩展名包括 .exe、.jpg、.mp3、.avi 等。

二进制文件通常用于存储复杂的数据结构和程序,因为它们能够直接存储计算机能够理解的机器语言。由于二进制文件存储的是原始数据,因此它们通常比文本文件更小、更高效,并且能够更准确地表示数据。然而,由于二进制文件的格式通常是特定于应用程序或系统的,因此它们可能不如文本文件那样容易在不同的系统和应用程序之间交换。

判断文件是二进制文件还是文本文件
使用记事本打开该文件,如果不是乱码,就是文本文件。如果是乱码,就是二进制文件。
(记事本,属于把文件内容,按照文本的方式来理解)

3.文件权限

文件权限是指文件的访问控制,即哪些用户可以访问文件并执行什么样的操作。文件权限规定了用户对文件的操作权限,包括读取权限(r)、写入权限(w)和执行权限(x)。

  • 读取权限(r):允许用户读取文件的内容。对于目录,具有读取权限的用户可以列出目录中的文件列表。
  • 写入权限(w):允许用户修改文件的内容。对于目录,具有写入权限的用户可以在目录中创建或删除文件。
  • 执行权限(x):对于普通文件,表示用户可以执行该文件。对于目录,则意味着用户可以进入该目录。

文件权限是针对每个文件或目录设置的,它规定了对应的所有者、所属组和其他用户对文件的读取、写入和执行权限。这些权限可以分别针对所有者、所属组和其他用户进行设置。例如,在Linux系统中,可以使用ls -l命令查看文件或目录的权限设置。

文件权限与用户权限共同决定了用户对文件的实际操作权限。当用户对文件进行操作时,系统会根据文件的权限设置以及用户所属的用户组来确定用户对文件的读取、写入和执行权限。

总的来说,文件权限是确保文件安全和系统稳定的重要机制,它允许管理员或文件所有者控制谁可以访问和修改文件,以及他们可以执行哪些操作。

4.相对路径和绝对路径

文件的路径(File Path)是指在计算机文件系统中用于定位和访问文件或目录的完整地址。它通常是由一系列目录名称和子目录名称组成的序列,这些名称按照它们在文件系统中的层次结构进行排列,并使用特定的分隔符(如斜杠“/”或反斜杠“\”)进行分隔。(通常使用/,因为\在字符串中容易被解析成转义字符)

文件路径可以是绝对路径或相对路径:

1.1绝对路径

绝对路径是从文件系统的根目录开始,一直到目标文件或目录的完整路径。它包含了从根目录到目标位置的所有目录和子目录的名称。绝对路径不依赖于当前的工作目录,因此它总是能够精确地定位到文件系统中的特定位置。

1.2相对路径

相对路径则是相对于当前工作目录的路径。它不需要从文件系统的根目录开始,而是从当前所在的目录开始,指定到达目标文件或目录的路径。相对路径依赖于当前的工作目录,因此如果当前工作目录改变,相同的相对路径可能会指向不同的文件或目录。

在这里插入图片描述
我们以D:\IDEA\IntelliJ IDEA Community Edition 2022.3.3\bin为工作目录,我们要在bin文件夹下寻找idea64.exe

相对路径./idea64.exe
这里的.就代表工作目录 D:\IDEA\IntelliJ IDEA Community Edition 2022.3.3\bin

绝对路径D:\IDEA\IntelliJ IDEA Community Edition 2022.3.3\bin\idea64.exe

✍二、文件的基本操作

针对文件系统的操作, 主要是文件/目录的创建和删除, 文件的重命名等.

Java标准库中提供了一个File类, 能够完成对某一路径上的文件进行操作.

1.FIle的属性

修饰符及类型属性说明
static StringpathSeparator依赖于系统的路径分隔符(/或者), String类型的表示.
public static final charpathSeparatorChar依赖于系统的路径分隔符(/或者), char类型的表示.

2.File的构造方法

签名说明
File(File parent, String child)根据父文件对象 + 孩子文件路径, 创建文件
File(String path name)根据一个文件路径去创建文件
File(String parent, String child)根据父目录(路径) + 孩子路径,创建文件

构造File对象时,写的路径,不一定要存在

File(File parent, String child)

File parentDir = new File("/home/user/documents");  
File file = new File(parentDir, "myfile.txt");  
// 此时,file 代表的路径是 /home/user/documents/myfile.txt

File(String parent, String child)

File file = new File("/home/user/documents", "myfile.txt");  
// 此时,file 代表的路径是 /home/user/documents/myfile.txt

3.File类的方法

3.1File类的获取操作

返回值方法说明
StinggetParent()返回File对象父目录文件路径
StringgetName()返回File对象文件名
StringgetPath()返回File对象文件路径
StringgetAbsolutePath()返回File对象的绝对路径
StringgetCanonicalPath()返回File对象修饰过的绝对路径
 public static void main(String[] args) throws IOException {File file = new File("d:/Test.txt");//获取File对象的文件名System.out.println(file.getName());//获取File对象的文件路径System.out.println(file.getPath());//获取File对象父目录文件路径System.out.println(file.getParent());//获取File对象的绝对路径System.out.println(file.getAbsoluteFile());//返回File对象修饰过的绝对路径System.out.println(file.getCanonicalPath());}

在这里插入图片描述

3.2File类的判断操作

返回值方法说明
booleanexists()判断File对象代表的文件是否真实存在
booleanisDirectory()判断File对象代表的文件是否是一个目录
booleanisFile()判断File对象代表的文件是否是一个普通文件
booleanisHidden()判断File对象代表的文件是否是一个隐藏文件
booleanisAbsolute()判断File对象路径名是否是绝对路径
booleancanRead()判断用户是否对文件有可读权限
booleancanWrite()判断用户是否对文件有可写权限
booleancanExecute()判断用户是否对文件有可执行权限
  public static void main(String[] args) {File file = new File("d:/Test.txt");//判断File对象代表的文件是否存在System.out.println(file.exists());//判断File对象代表的文件是否时一个目录System.out.println(file.isDirectory());//判断File对象代表的文件是否是一个普通文件System.out.println(file.isFile());//判断File对象代表的文件是否是一个隐藏文件System.out.println(file.isHidden());//判断File对象路径名是否是绝对路径System.out.println(file.isAbsolute());//判断用户是否对文件有可读权限System.out.println(file.canRead());//判断用户是否对文件有可写权限System.out.println(file.canWrite());//判断用户是否对文件有可执行权限System.out.println(file.canExecute());}

在这里插入图片描述

3.3文件创建和删除

返回值方法说明
booleancreateNewFile()自动创建一个新文件,创建成功返回true
booleanmkdir()创建File对象表示的目录
booleanmkdir()创建File对象表示的多级目录
booleandelete()根据File对象删除该文件,删除成功返回true
voiddeleteOnExist()根据File对象,标注该文件将被删除,当JVM运行结束才会执行

代码展示:

在idea默认目录下进行展示
在这里插入图片描述

public static void main(String[] args) throws IOException {File file = new File("./abc.txt");//文件未创建,则创建新文件if (!file.exists()){file.createNewFile();System.out.println("创建成功!~~");}//创建一个文件夹(目录)file = new File("./temp");file.mkdir();System.out.println("创建目录成功!~~");//创建多个目录file = new File("./aaa/bbb/ccc");file.mkdirs();System.out.println("创建多个目录成功!~~");}

执行结果:

在这里插入图片描述

如果在执行完代码后,没有出现如上效果
右键项目,点击Reload from Disk刷新一下
在这里插入图片描述
文件的删除

 File file1 = new File("./abc.txt");file1.delete();

在这里插入图片描述
关于删除方法中的deleteOnExist()不太好演示, 这里解释一下, 这个方法的功能是在程序退出的时候, 自动删除文件, 当我们在程序中需要用到一些 “临时文件” 的时候, 可以用到这个方法, 保证在程序退出的同时把临时文件给删除掉.

什么时候会用到临时文件的呢, 比如这里打开一个word文档, 在打开的同时就会在同级目录下生成出一个临时文件, 关闭word, 这个临时文件被删除了, 临时文件发挥的功能是实时保存我们实时编辑的内容(尤其是没有保存的内容), 防止我们编辑了很多内容但由于一些问题导致我们没有进行保存, 比如工作一半突然停电了, 东西还没来得及保存, 但由于临时文件中实时保存了我们编辑的内容, 等到再次启动word文档时, 就会提醒我们是否要恢复之前的编辑内容.

3.4其他的常用方法

返回值方法说明
String[]list()返回File对象目录下所有的文件名
File[]listFiles()返回File对象目录下的所有文件,以File对象的形式表示
booleanrenameTo(File dest)对文件进行改名
    public static void main(String[] args) {File file = new File("./");File temp1 = new File("./aaa");File temp2 = new File("./eee");//获取当前路径目录下所有文件名System.out.println(Arrays.toString(file.list()));//将目录aaa更名为eeeSystem.out.println(temp1.renameTo(temp2));//重新获取当前路径目录下所有文件名System.out.println(Arrays.toString(file.list()));}

在这里插入图片描述


以上就是本文所有内容,如果对你有帮助的话,点赞收藏支持一下吧!💞💞💞

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

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

相关文章

深入理解JavaScript:对象什么时候创建

🌟 我们在chrome浏览器中debug程序。为了好debug我们会写一些在日常开发中基本不会采用的代码书写方式。 JavaScript中创建对象有3中方式: 1、对象字面量; 2、new; 3、Object.create(对象); 1、使用new创建对象 fun…

玩转PyCharm

玩转PyCharm PyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补…

SWOT分析法:知彼知己的战略规划工具

文章目录 一、什么是SWOT分析法二、SWOT分析法如何产生的三、SWOT分析法适合哪些人四、SWOT分析法的应用场景五、SWOT分析法的优缺点六、SWOT分析实例 一、什么是SWOT分析法 SWOT分析法是一种用于评估组织、项目、个人或任何其他事物的战略规划工具。SWOT是Strengths&#xff…

PotPlayer详细安装教程

安装步骤 进入官网: https://potplayer.tv/ 根据自己电脑的windows系统选择对应的版本安装 选择合适的字体 下载完成 优化设置 刚下好的potplayer仅限于能用,所有设置均为默认状态,我们需要进行优化 首先打开potplayer 右击选择选项 在…

C语言洛谷题目分享(10)最厉害的学生和明明的随机数

目录 1.前言 2.俩则题目 1.最厉害的学生(p5740) 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 2. 明明的随机数 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 3.小结 1.前言 哈喽大家好啊,今天继续为大…

Linux 基础命令使用创建用户

浏览网站的时候图片,看到一个小练习。创建用户分别位于不同的用户组。 解答下面的题目 2、建立用户使用 useradd,设置密码使用passwd的命令。大概不会使用命令可以借助man来解答。 先建立用户组: groupadd group1 # group1 不存在先建立&…

会声会影滤镜怎么用 会声会影滤镜效果怎么调 会声会影视频制作教程

在进行视频剪辑时,合理地运用滤镜效果可以提升视频的观赏性,使你的作品更加出彩。这篇文章便一起来学习会声会影滤镜怎么用,会声会影滤镜效果怎么调。 一、会声会影滤镜怎么用 使用会声会影的滤镜效果非常简单,以下是具体的操作…

全氟己酮灭火绳的用法早知道:灭火绳多少钱一米?

全氟己酮灭火装置作为一种高效、安全、环保的灭火技术,已经成为了备受青睐的新型灭火选择之一。伴随着市场需求不断增长,在全氟己酮厂家的努力下,各式各样的全氟己酮自动灭火装置不断涌现,包括自动灭火贴、灭火片、灭火毯、灭火绳…

如何打造自己的O2O平台系统:商业模式探索与实践

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是O2O平台系统? 在数字化浪潮的推动下,O2O(Online to Offline)商业模式已成为连接线上与线下、商家…

c primer plus(2)

前言 延续上一讲的内容,今天来写一写这本书的第三章:处理数据 好吧,本次博客仍然是总结重点内容 简单变量 在本书中变量有三个属性 1信息存储在什么地方 2要存储什么 3存储类型 比如 int braincount; braincount5; 这两行代码体现了…

人工智能论文GPT-3(1):2020.5 Language Models are Few-Shot Learners;摘要;引言;scaling-law

摘要 近期的工作表明,在大量文本语料库上进行预训练,然后针对特定任务进行微调,可以在许多NLP任务和基准测试中取得实质性进展。虽然这种方法在架构上通常是与任务无关的,但仍然需要包含数千或数万示例的针对特定任务的微调数据集…

我们该如何看待AIGC(人工智能)

目录 AIGC的概述: AIGC的发展经历: AIGC的概述: [TOC]( 🚀文章目录) ---AIGC全称为AI-Generated Content,指基于生成对抗网络GAN、大型预训练模型等人工智能技术,通过已有数据寻找规律,并通过…

数字藏品平台家政平台搭建重点,会用到哪些三方服务?

数字藏品平台搭建重点: 藏品安全性与版权保护:确保数字藏品的安全存储,防止数据丢失或被篡改,同时确保藏品的版权得到合法保护。交易系统的构建:建立一个稳定、透明的交易系统,支持藏品的买卖、竞价等交易…

黑盒优化系列(一):自动化提示词优化【一、绪论】

大语言模型的提示词 随着ChatGPT等大语言模型的问世,我们获取知识的方式从单一的搜索引擎如Google转变为类似ChatGPT这种通过 Q & A 方式提供的方法。 我们尝试对比一下不同提示词,对应的模型输出 ChatGPT无提示词 API: ChatGPT 3.5 …

function calling实现

NLP - LLM - function calling实现 一、function calling介绍二、chatglm3 function calling实现 一、function calling介绍 大型模型如 GPT-4 被设计为能够与外部系统交互,比如通过 API 调用执行某些任务。例如,一个大型模型可能被编程为在需要时调用外…

零代码编程:下载的PDF文件自动批量重命名

从arxiv或者一些其他网站下载的PDF文件,标题只是创建时间,看不出里面内容是什么,要一个个打开看非常麻烦。 可以在GPT4中输入提示词: 你是一个Python编程专家,要完成一个编写关于重命名PDF文件的Python脚本的任务&…

C语言(1):初识C语言

0 安装vs2022 见 鹏哥视频即可 1 什么是C语言 c语言擅长的是底层开发! 现在一般用的是C89和C90的标准 主要的编辑器: 2 第一个C语言项目 .c 源文件 .h头文件 .cpp c文件 c语言代码中一定要有main函数 标准主函数的写法: int main() { …

springboot 集成 i18n实现国际化信息返回 实现中英文切换 实现网站支持多语言切换

还是直接上代码 目前实现了 中英文 返回 别的语言 都差不多 主要用spring boot 自带的 类实现的 不用引入任何 依赖 使用的就是下面的类 org.springframework.context.MessageSource 是 Spring Framework 中用于支持国际化(Internationalization,简称 i…

大模型入门指南

随着 ChatGPT 的到来,大模型[1](Large Language Model,简称 LLM)成了新时代的 buzzword,各种 GPT 产品百花齐放。 大多数人直接用现有产品就可以了,但对于喜欢刨根问底的程序员来说,能够在本地…