【JavaEE初阶】第四节.文件操作 和 IO (上篇)

news2025/1/23 5:55:37

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、文件
  •       1.1 文件的概念
  •       1.2 文件的路径
  • 二、 Java中文件系统操作
  •       2.1 File类的属性
  •       2.2 File类的构造方法
  •       2.3 File类的方法
  •             2.3.1 File类的常用获取方法       
  •             2.3.2 File类的常用判断方法
  •             2.3.3 文件的创建与删除
  •             2.3.4 其他的常用方法
  •       2.4 代码示例演示
  •              2.4.1 演示一:演示File类的一些常见用法
  •              2.4.2 演示二:文件的创建及其相关属性
  •              2.4.3 演示三:文件的删除
  •              2.4.4 演示四:创建目录
  •              2.4.5 演示五:文件重命名      2.3.1 File类的常用获取方法


前言

提示:这里可以添加本文要记录的大概内容:

在本篇博客中,将主要介绍 的时文件的概念、文件的路径、Java中 文件系统的操作(主要介绍 File类 的各种属性与方法)


提示:以下是本篇文章正文内容,下面案例可供参考

一、文件

1.1 文件的概念

我们平时所说的文件,一般都是存储在计算机硬件上面的文件,可以是 文本文档、图片、程序等等,一般是以 .jpg 、 .txt 、 .mp3 、 .mp4 、 .pptx 等文件格式 ;

而在计算机中的概念,目录(也就是 文件夹)也是文件的一种,称为 目录文件 ;

1.2 文件的路径

文件的路径 一般分为两种:一种是 绝对路径,一种是相对路径 ;

绝对路径:以盘符开头 的路径 ;

相对路径:以 . 或者 .. 开头的 路径,需要先明确一个基准路径,来找到目标的目录 ;

注意:

目录和目录之间,可以用 \ 分割,也可以使用 / 分割;

但是更推荐使用 / 的,因为 \ 在字符串里面表示 转义字符,要想表示分割,就需要 \\,还不如直接用 / 来的更好 !!!


举例说明:

以帮助大家更好的理解 绝对路径 和 相对路径 :

假设 A同学 想要去图书馆看书,但是由于学校非常的大,绕来绕去的就把 A同学 绕晕了 ;

此时,A同学看到 学校大门口旁边有个 警卫,于是就跑过去问路 ;

那么,此时 绝对路径 的内容都是固定的,无论 A同学在哪里,这条路经都是不变的 

而所谓的相对路径,其实就是相对的(以 A同学自身的位置为基准的):

 当 A同学在校门口的时候,相对路径就是

当 A同学在躬行楼的时候,相对路径就是

 当 A同学在行知广场的时候,相对路径就是


在使用 Idea 运行程序的时候,当前的工作目录(取为基准路径)就是项目所在的目录:

二、 Java中文件系统操作

在之前所介绍过的 冯诺依曼体系结构中,我们已经知道,文件是存储在硬盘上的!

复习硬盘(外存) 和 内存的 4 个区别(重点掌握):

  1. 内存存储空间小,硬盘存储空间大
  2. 内存访问速度快,硬盘访问速度慢
  3. 内存成本高,硬盘成本低
  4. 内存掉电数据丢失,硬盘掉电数据还在

文件也是被操作系统所管理,在操作系统内核中 有一个专门的模块 —— 文件系统(大概会以某种方式来管理硬盘上的文件) ;

在 Java 中针对 文件系统/文件 进行了一系列的封装,我们可以根据 Java API 对文件进行一些操作,专门提供了 File类,以表示一个文件;

然后,就可以基于 File类,来完成一些关于文件的操作 ;

2.1 File类的属性

 分隔符是 / 还是 \ ,暂时不需要纠结,因为平常我们暂时用不到 ;

 

2.2 File类的构造方法

我们可以通过 构造方法 来基于一个路径,构造出一个文件 ;

 

2.3 File类的方法

2.3.1 File类的常用获取方法

 

2.3.2 File类的常用判断方法

 

 

2.3.3 文件的创建与删除

2.3.4 其他的常用方法

2.4 代码示例演示 

2.4.1 演示一:演示File类的一些常见用法;

代码示例1:

package file;
 
import java.io.File;
import java.io.IOException;
 
//演示 file类 的一些常见用法
public class Demo1 {
    public static void main(String[] args) throws IOException {
        File file = new File("d:/test.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());
    }
}

运行结果:


代码示例2:

package file;
 
import java.io.File;
import java.io.IOException;
 
//演示 file类 的一些常见用法
public class Demo1 {
    public static void main(String[] args) throws IOException {
        File file = new File("./test.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());
    }
}

运行结果:

 

2.4.2 演示二:文件的创建及其相关属性

代码示例:

package file;
 
import java.io.File;
import java.io.IOException;
 
public class Demo2 {
    public static void main(String[] args) throws IOException {
        //前面没有写 ./ ,但是也相当于是 相对路径,即 相当于是有 ./ (./ 可以省略)
        File file = new File("HelloWorld.txt");
        System.out.println("当前目录下,是否存在该文件:" + file.exists());
        System.out.println("判断其是否是目录:" + file.isDirectory());
        System.out.println("判断其是否是文件:" + file.isFile());
        System.out.println("--------------------------------------------------");
        //现在可以创建一个文件
        file.createNewFile();
        System.out.println("当前目录下,是否存在该文件:" + file.exists());
        System.out.println("判断其是否是目录:" + file.isDirectory());
        System.out.println("判断其是否是文件:" + file.isFile());
    }
}

运行结果:


 此时,我们可以看见,程序运行结束后,创建了一个新的文件:

 同时,当找到绝对路径去观察时,就会发现真的创建了一个文件: 

2.4.3 演示三:文件的删除

第一种删除方法:delete 方法(直接删除)

package file;
 
import java.io.File;
 
public class Demo3 {
    public static void main(String[] args) {
        //文件删除
        File file = new File("HelloWorld.txt");
        file.delete();
        System.out.println(file.exists());
    }
}

运行结果:

我们可以看见,"HelloWorld.txt"文件就真的被删除了 ;

打开绝对路径的时候,文件确实被删除了 ;


第二种删除方法:deleteOnExit 方法(程序退出之后再删除,可以用来创建一些临时文件)

偷偷摸摸的又运行了一下 Demo2,以创建出文件 :

我们可以看见,当运行到打印 文件是否存在 的时候,仍然是文件存在的 ;

当程序运行结束之后,文件才不存在被删除了 ;

 同时,当打开绝对路径的时候,确实发现文件没有了 :

2.4.4 演示四:创建目录

如果我们创建的是单级目录的话,可以使用 mkdir 方法:

package file;
 
import java.io.File;
 
public class Demo4 {
    //创建目录
    public static void main(String[] args) {
        File file = new File("test");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println("---------------------");
        file.mkdir();
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
    }
}

运行结果:

此时,可以观察到左边,真的创建了一个目录:

当打开绝对路径去观察时,也会发现真的出现了一个目录(文件夹): 

当我们想要创建的是多级目录时,使用的就需要是 mkdirs 方法(如果继续使用 mkdir 方法,就会发现它是错误的)

package file;
 
import java.io.File;
 
public class Demo4 {
    //创建目录
    public static void main(String[] args) {
        File file = new File("test/aa/1");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println("---------------------");
        //file.mkdir();
        //创建多级目录的时候需要用的是 mkdirs 方法
        file.mkdirs();
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
    }
}

运行结果:

同时,可以观察到左边创建了目录:

当打开绝对路径去观察时,也会发现创建了多级目录:

 

2.4.5 演示五:文件重命名

package file;
 
import java.io.File;
 
public class Demo5 {
    //文件重命名
    public static void main(String[] args) {
        File file1 = new File("./test1.txt");
        File file2 = new File("./test2.txt");
        file1.renameTo(file2);
    }
}

运行结果:

我们可以很清楚的看见,文件名 test1.txt 运行程序之后,重命名为了 test2.txt ; 

总结

好了,关于 文件操作和IO 的上半篇的内容就介绍到这里了,下半篇的内容就留到下一篇博客来介绍 ;

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

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

相关文章

ArangoDB

介绍 ArangoDB 是一个原生的多模型开源数据库,具有灵活的文档、图形和键值数据模型。使用方便的类似 SQL 的查询语言或 JavaScript 扩展构建高性能应用程序。主要特点 在集群上安装 ArangoDB —— 安装简单灵活的数据建模:数据建模为键值对、文档或图表的…

企业信息化,电商商品详情API接口,数据返回值说明,商品详情,关键词搜索,价格监控,卖家买家订单等相关数据

都在说API,API到底是什么? 对于很多非IT人士而言,API ≈ 听不懂。 其实日常生活中,我们有很多类似API的场景,比如: 电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来&a…

[Tomcat]解决IDEA中的Tomcat中文乱码问题

目录 1、IDEA 2、VM options 3、IDEA启动程序的存放目录 4、Tomcat 写在前面:此方法亲测有效!!! 1、IDEA 2、VM options 加上这两行: -Dfile.encodingUTF-8 -Dconsole.encodingUTF-8 3、IDEA启动程序的存放目录…

置信椭圆(误差椭圆)详解

文章目录Part.I 预备知识Chap.I 一些概念Chap.II 主成分分析Chap.III Matlab 函数 randnChap.IV Matlab 函数 pcaPart.II 置信椭圆的含义Chap.I 一个 Matlab 实例Sec.I 两个不相关变量的特征Sec.II 两个相关变量的特征Chap.II 变换阵 (解相关矩阵) 的求解ReferencePart.I 预备知…

配置VM虚拟机Centos7网络

配置VM虚拟机Centos7网络 第一步,进入虚拟机设置选中【网络适配器】选择【NAT模式】 第二步,进入windows【控制面板\网络和 Internet\网络连接】设置网络状态。 我们选择【VMnet8】 点击【属性】查看它的网络配置 2 .我们找到【Internet 协议版本 4(TCP…

一小时快速上手GoWeb开发之Gin框架

Go是一门正在快速增长的编程语言,专为构建简单、快速且可靠的软件而设计。golang提供的net/http库已经很好了,对于http的协议的实现非常好,基于此再造框架,也不会是难事,因此生态中出现了很多框架。 Gin:G…

【rust-grpc-proxy】在k8s中,自动注入代理到pod中,再不必为grpc调试而烦恼

目录前言原理sidecarwebhook实现安装k8s设置webhook使用尾语前言 rust-grpc-proxy 目前功能基本完善。是时候上环境开始应用了。 之前考虑是gateway模式或者sidecar模式。 思考良久之后,觉得两种模式都有使用场景,那就都支持。本次就带来sidecar模式的食…

实战小项目之视频监控(1-1)

实战小项目之视频监控(1-1) 目前常见的视频监控和视频直播都是使用了 RTMP 和 RTSP 流媒体传输协议等。 RTSP(Real-Time Stream Protocol)由 Real Networks 和 Netscape 共同提出的,基于文本的多媒体播放 控制协议。…

计算机科学导论笔记(五)

目录 七、操作系统 7.1 引言 7.1.1 操纵系统 7.1.2 自举过程 7.2 演化 7.3 组成部分 7.3.1 用户界面 7.3.2 内存管理器 7.3.3 进程管理器 7.3.4 设备管理器 7.3.5 文件管理器 7.4 操作系统 7.4.1 UNIX 7.4.2 Linux 7.4.3 Windows 七、操作系统 7.1 引言 计算机…

阿里云手机短信登录

阿里云短信服务介绍阿里云短信服务(Short Message Service)是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信;国内验证短信秒级触达,到达率最高可达99%&…

三维重建(单目、双目、多目、点云、SFM、SLAM)

1 相机几何与标定1.1 相机模型中的坐标系1.2 四种坐标系之间的转换1.3 相机内参1.4 相机标定2 单目三维重建2.1 NeuralRecon三维重建定义 在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而…

DJ1-2 操作系统引论

目录 一、操作系统的发展过程 1. 无操作系统 2. 单道批处理系统 3. 多道批处理系统 4. 分时操作系统 5. 实时系统 二、操作系统的基本特征 1. 并发性 2. 共享性 3. 虚拟性 4. 异步性 三、操作系统的主要功能 1. 处理机管理功能 2. 存储器管理功能 3. 设备管理功…

python pca/svd原理及应用

PCA的定义主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域。它的主要作用是对高维数据进行降维。PCA把原先的n个特征用数目更少的k个特征取代,新特…

Elasticsearch使用——高级篇

1.数据聚合**聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功…

【ns-3】添加nr(5G-LENA)模块

文章目录前言1. 下载5G-LENA源代码2. 配置并重新构建ns-3项目参考文献前言 本篇以ns-3.37为例介绍如何在ns-3中添加nr(5G-LENA)模块 [1]。5G-LENA是一个由Mobile Networks group CTTC(Centre Tecnolgic de Telecomunicacions de Catalunya&a…

微信小程序开发学习笔记1——安心食疗

2.1小程序代码结构 目录结构 1.小程序的目录 pages:小程序的页面 页面路径 一个小程序页面由四个文件组成,分别是: xxx.js xxx.wxml xxx.json xxx.wxss 注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文…

MySQL(二)视图、锁、存储过程、触发器、锁以及常用工具

MySQL进阶视图检查选项视图的更新存储过程存储过程基本语法变量系统变量用户自定义变量局部变量if判断参数casewhile循环repeat循环loop循环cursor游标handler条件处理程序存储函数触发器锁全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁InnoDB引擎逻辑存储结构事…

使用Arduino开发ESP32:开发环境搭建

开发环境搭建 使用Arduino开发ESP32开发环境搭建方式和用Arduino开发ESP8266相似:https://blog.csdn.net/Naisu_kun/article/details/80186950#t0 下载安装Arduino IDE: https://www.arduino.cc/en/Main/Software Arduino IDE中添加ESP32开发板数据&a…

第二道pwn题:shellcode

题目来自视频:链接:https://pan.baidu.com/s/17vX9dbfHkXBw71mcEXBgNQ?pwd6666 提取码:6666查看文件类型和保护,虽然现在的我还没有明白太多的保护。64位,放到ida里边rbp:保存的是栈中当前执行函数的基本地址。当前执…

xCAT安装指南

一、简介 xCAT使您能够轻松管理任何类型的技术计算工作负载的大量服务器。xCAT以卓越的扩展、各种支持的硬件和操作系统、虚拟化平台和完整的“day0”设置功能而闻名。 二、安装指南 免责声明 这些说明仅为指南,具体细节可能因操作系统版本而略有不同。有关最新推…