JavaEE-文件和IO(一)
创始人
2024-05-16 17:03:02
0

目录

  • 一、文件
    • 1.1 认识文件
    • 1.2 树型结构组织和目录
    • 1.3 文件路径
  • 二、Java中操作文件
    • 2.1 文件系统相关的操作

一、文件

1.1 认识文件

平时说的文件一般都是指存储再硬盘上的普通文件,形如txt,jpg,MP4,rar等这些文件都可以认为是普通文件,它们都是再硬盘上存储的。

在计算机中,文件可能是一个广义的概念,就不只是包含普通文件,还可以包含目录(把目录称为目录文件)
文件可以是文本文档、图片、程序等等。文件通常具有点+三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以JPEG格式保存并且文件扩展名为.jpg)。

普通文件是保存在硬盘上的。

机械硬盘的基本构造:
1.盘片,存储数据的介质
2.磁头

针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,
往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概
念,就类似办公桌上的一份份真实的文件一般。
在这里插入图片描述
文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据
而存在,我们把这部分信息可以视为文件的元信息。
在这里插入图片描述
文件的分类(站在程序员的角度)
主要把文件分为两类
1.文本文件,里面存储的是字符,文本文件本质上也是存字节的,但是文本文件中相邻的字节在一起正好构成一个个字符。
2.二进制文件,里面存储的是字节

在这里插入图片描述

1.2 树型结构组织和目录

计算机里,保存管理文件,是通过操作系统中“文件系统”这样的模块来负责的。

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

1.3 文件路径

如何在文件系统中如何定位我们的一个唯一的文件就成为当前要解决的问题,但这难不倒计算机科学
家,因为从树型结构的角度来看,树中的每个结点都可以被一条从根开始,一直到达的结点的路径所描
述,而这种描述方式就被称为文件的绝对路径(absolute path)。
在这里插入图片描述
除了可以从根开始进行路径的描述,我们可以从任意结点出发,进行路径的描述,而这种描述方式就被
称为相对路径(relative path),相对于当前所在结点的一条路径。

在这里插入图片描述
即使是定位到同一个文件,如果基准目录不同,此时相对路径也不同。

二、Java中操作文件

2.1 文件系统相关的操作

文件系统相关的操作指的是通过”文件资源管理器“能够完成的一些功能。
功能:

  1. 列出目录中有哪些文件
  2. 创建文件
  3. 创建目录
  4. 删除文件
  5. 重命名文件

在Java中提供了一个File类,通过这个类来完成上述操作
首先File类就描述一个文件/目录

File的构造方法,能够传入一个路径,来指定一个文件,这个路径可以是绝对路径也可以是相对路径

在这里插入图片描述
文件操作,也是一种输入输出,File这个东西也就在IO中
在这里插入图片描述
在这里插入图片描述
这样就可以定位到具体的文件,是以绝对路径的方式。
在这里插入图片描述
谈到相对路径,一顶得先明确一个“基准路径”

  1. 如果是通过命令行的方式(java.Demo),此时执行命令所在的目录,就是基准路径
  2. 如果是通过IDEA的方式来运行程序,此时基准路径就是当前Java项目所在的路径
  3. 把一个java代码打残war包,放到tomcat上运行
    这种情况下基准路径就是tomcat的bin目录
    一旦路径指定错了,很容易出现找不到的情况~
package file;import java.io.File;
import java.io.IOException;@SuppressWarnings({"all"})
public class Demo {public static void main(String[] args) throws IOException {File f = new File("d:/text.txt");// 获取到文件的父目录System.out.println(f.getParent());// 获取到文件名System.out.println(f.getName());// 获取到文件路径System.out.println(f.getPath());// 获取到绝对路径System.out.println(f.getAbsolutePath());// 获取到绝对路径System.out.println(f.getCanonicalPath());System.out.println("===================");File f2 = new File("./test.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());}}

在这里插入图片描述
在这里插入图片描述
其他的功能这里就不赘述了。

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
AWSECS:哪种网络模式具有... 使用AWS ECS中的awsvpc网络模式来获得最佳性能。awsvpc网络模式允许ECS任务直接在V...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...