【JavaEE初阶】第四节.文件操作 和 IO (上篇)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、文件
- 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 个区别(重点掌握):
- 内存存储空间小,硬盘存储空间大
- 内存访问速度快,硬盘访问速度慢
- 内存成本高,硬盘成本低
- 内存掉电数据丢失,硬盘掉电数据还在
文件也是被操作系统所管理,在操作系统内核中 有一个专门的模块 —— 文件系统(大概会以某种方式来管理硬盘上的文件) ;
在 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 的上半篇的内容就介绍到这里了,下半篇的内容就留到下一篇博客来介绍 ;
相关文章:

【JavaEE初阶】第四节.文件操作 和 IO (上篇)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、文件 1.1 文件的概念 1.2 文件的路径二、 Java中文件系统操作 2.1 File类的属性 2.2 File类的构造方法 2.3 File类的方法 …...

开源免费堡垒机Teleport堡垒机的安装
准备:纯净centos7系统一个作为堡垒机,若干个linux系统或windows系统服务器作为受保护的服务器 堡垒机IP:192.168.1.15 服务器IP:192.168.1.10 1、teleport安装 下载地址: https://www.tp4a.com/static/download/teleport-server-linux-x64-3.6.4-b3.tar.gz xshell上传压缩…...

图形报表ECharts
图形报表ECharts1 图形报表ECharts1.1 ECharts简介-富客户端图表库ECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用JavaScript实现的数据可视化工具,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏…...

便捷式储能电源核心技术--单相逆变器设计
便捷式储能电源核心技术–单相逆变器设计 1.逆变器的规格参数 输入电压直流400V输出电压交流rms220V开关频率10kHz滤波电容6.23uF控制方式单极性倍频2.视频学习链接 视频学习链接 3.主电路仿真设计...

Gamma矫正
Gamma 曲线Gamma校正被使用在8位RGB图中。用来解决在有限的存储空间中保存尽可能多的人类感受敏感的色彩内容。Gamma 矫正Gamma校正的方式就是采样时,和输出到显示器给人类看时,对亮度进行的调整.如采样时 Gamma1/2.2 调亮Gamma,如显示时 Gamma2.2 调暗Gamma实际亮度…...

速懂cookie,session,token
文章目录cookiesessiontoken区别cookie 是浏览器提供的一种能力,可以在每次发起请求前,带上cookie里面的内容(一些key,value值) 分类: 会话级cookie:默认情况,就是会话级cookie&…...

javaEE初阶 — HTML 中的常见标签
文章目录注释标签标题标签:h1 h6段落标签:p换行标签:br格式化标签图片标签:img1. img 的 alt 属性2. img 的 title 属性3. width 与 heigth 属性用来描述图的尺寸超链接标签:a表格标签列表标签表单标签1. from 标签2. …...

MySQL慢查询
2 慢查询 2.1 慢查询介绍 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。具体指运行时间超过long_query_time值的SQL&…...

tensorflow【import transformers 报错】
目录 一、安装 安装好了tensorflow,但是import时候报错: import transformers 报错 一、安装 (1)创建环境: conda create -n [name] python3.3-3.7 (2)激活环境: conda activate [name] …...

JMU软件20 计算机网络复习
文章目录题型单位换算第一章协议与划分层次、网络协议的三个组成要素,分层的思想等协议网络协议的三个组成要素分层的思想⭐计算机网络体系结构OSI 的七层协议TCP/IP 的四层协议五层协议发送时延、传播时延、总时延、往返时间RTT计算第二章 物理层传输媒体导向性传输…...

Java基础之《dubbo(1)—dubbo基础入门》
一、为什么要使用dubbo 1、dubbo是什么 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 2、dubbo有何特点 (1)远程通讯:提供透明化的远程方法调用,提供…...

HTML注入的一种攻击思路(超链接替换为点击验证,现在常见)
目录 背景 利用方法 举一反三 场景1:截获 TOKEN 场景2:截获后台信息 总结...

Redis-6集群
文章目录前言Redis集群原理搭建Redis集群集群拓展后记前言 前两期介绍和搭建了Redis的主从复制架构和哨兵模式,虽然哨兵模式能够实现自动故障转移主备切换,一定程度上提高了系统的容错性 但这两种架构模式都不能解决单节点的并发压力和物理上线的问题&…...

Spring Cloud学习笔记:基础知识
这是本人学习的总结,主要学习资料如下 马士兵教育 目录1、Spring Cloud 简介2、Eureka3、建立Spring Cloud项目3.1、启动Server3.1.1、dependency3.1.2、配置文件3.1.3、Server端启动代码3.2、启动Client3.2.1、dependency3.2.2、配置文件3.3.3、Client端启动代码3…...

农产品销售系统/商城,可运行
文章目录项目介绍一、项目功能介绍1、用户模块主要功能包括:2、商家模块主要功能包括:3、管理员模块主要功能包括:二、部分页面展示1、用户模块部分功能页面展示2、商家模块部分功能页面展示3、管理员模块部分功能页面展示三、部分源码四、底…...

【Java开发】JUC进阶 05:函数式接口、ForkJoin
1 四大函数式接口函数式接口:只有一个抽象方法的接口,只要是函数式接口,就可以用lambda表达式简化例如Runnable:FunctionalInterface public interface Runnable {public abstract void run(); }框架底层大量应用函数式接口&#…...

Nginx支持quic协议
第一种方式:Nginx官方nginx-quic搭建 通过部署Nginx官方的QUIC分支来实现的浏览器和nginx-quic服务器粗略的HTTP3通信。 1、下载BoringSSL BoringSSL 是由谷歌开发,从 OpenSSL 中分离的一个分支。BoringSSL 是 Chrome/Chromium、Android(但它不是 NDK 的…...
笔记 - Java 内存结构与模型
-- Java里内存结构与内存模型是两种概念 一、Java内存结构: HeapMemory - 堆内存Java Stacks - 栈内存 (运行时)Method Area - 方法区Native Method Stack - 本地方法栈 真实和系统打交道的地方Jit Compiler - 将java运行指令编译成机器指令G…...

C#基础教程12 数组
文章目录 C# 数组(Array)C# 中的数组声明数组初始化数组赋值给数组访问数组元素C# 数组细节C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1…...

Android中级——屏幕和绘图
屏幕和绘图屏幕系统屏幕密度独立像素密度dp单位转换XML绘图(需放在Drawable)BitmapShapeLayerSelector绘图技巧CanvasLayerPorterDuffXfermodeShaderPathEffectSurfaceView屏幕 屏幕大小:指屏幕对角线长度,单位为寸分辨率&#x…...

Linux - 第6节 - 动态库和静态库
1.静态库与动态库概念 静态库(.a):程序在编译链接的时候把库的代码拷贝到可执行文件中。程序运行的时候将不再需要静态库。动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用…...

【Java学习笔记】12.Character 类及String 类
前言 本章介绍Java的Character 类和String 类。 Java Character 类 Character 类用于对单个字符进行操作。 Character 类在对象中包装一个基本类型 char 的值 实例 char ch a;// Unicode 字符表示形式 char uniChar \u039A; // 字符数组 char[] charArray { a, b, c, d…...

【C++修炼之路】26.C++11(语法糖)
每一个不曾起舞的日子都是对生命的辜负 C11C11(语法糖)本节目标一.C11简介二.统一的列表初始化2.1 {}初始化2.2 std::initializer_list三.声明3.1 auto3.2 decltype3.3 nullptr四.总结C11(语法糖) 本节目标 C11简介 列表初始化 变量类型推导 一.C11简介 在2003年C标准委员…...

KD610精密油介损体积电阻率测试仪
一、概述 KD610精密油介损体积电阻率测试仪是用于绝缘油等液体绝缘介质的介质损耗角及体积电阻率的高精密仪器。 二、产品特点 1.仪器内部采用数字技术,具备多种模式测式。 2.智能自动化测量。 3.配备了大屏幕(2401…...

快速了解原码、反码、补码和位运算
我们知道计算机使用的是二进制,我们⽤⼀个字节,也就是8个bit 来表示⼆进制数。 原码 十进制 原码20000 0010-21000 0010 原码其实是最容易理解的,只不过需要利⽤⼆进制中的第⼀位来表示符号位,0表示正数,1表示…...

算法的复杂度介绍
算法的复杂度介绍 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 为什么要进行算法分析&…...

教你如何搭建店铺—收支管理系统,demo可分享
1、简介1.1、案例简介本文将介绍,如何搭建店铺-收支管理。1.2、应用场景以店铺收支管理为核心,维度数据分析,智能指导门店经营,账目清晰一目了然,店铺经营更高效。2、设置方法2.1、表单搭建1)新建表单【客户…...

java性能分析-堆内存最佳实践-堆分析
堆内存最佳实践 优化垃圾回收器标志参数很重要但是采用更好的编程实践获得更大的性能提升 1.谨慎的创建对象并尽快的丢弃,是更好的内存是提高gc更好的方法 2.频繁创建某种类型的对象会导致整体的性能变差 对象复用设计 线程局部变量 每个线程中创建一个局部变量…...

3月8号作业
题目:题目一:vmlinux可执行文件如何产生题目二:整理内核编译流程:uImage,zImage,Image,vmlinux之间的关系答案一:在内核源码目录下vi Makefile,搜索vmlinux目标,vmlinux: scripts/li…...

Flink相关介绍
简介 Flink的定位是:Apache Flink是一个框架和分布式处理引擎,如图所示,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境运行,以内存执行速度和任意规模来执行计算。 Flink 框架处理流程应用场景 1、电…...