当前位置: 首页 > news >正文

JavaEE 初阶第十五期:文件 IO 的 “管道艺术”(上)

专栏:JavaEE初阶起飞计划

个人主页:手握风云

目录

一、文件基础

1.1. 文件概念

1.2. 文件路径

1.3. 文件的类型

二、Java文件操作

2.1. File概述


一、文件基础

1.1. 文件概念

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

        我们要知道,文件在计算机中,是保存在硬盘上的。我们在编程的时候,是不会直接操作硬盘的,而是通过“文件”这样的概念间接进行的。

        对于文件的管理,是通过文件资源管理器管理的,通过类似于“树形结构”来组织管理。

1.2. 文件路径

        在计算机文件系统中,文件路径是用于标识文件或目录在存储介质中具体位置的字符串,它像 “地址” 一样,告诉操作系统或程序如何找到目标文件。

        绝对路径:从文件系统的根目录开始,完整描述文件位置的路径,是 “全量地址”。例如在Windows系统中"D:\data-structure\Test1.12.1\src\Solution.java",就是平时储存数据结构的代码。

        相对路径:从当前工作目录(程序运行时的默认目录)出发,描述文件位置的路径,是 “相对地址”。.:表示当前目录(可省略);..:表示上一级目录。谈到相对路径,一定要明白相对路径的参考系是啥。

        在实际开发中,绝对路径和相对路径都会经常用到,尤其是相对路径,用到会更多一些。

1.3. 文件的类型

        所有的文件都可以分为2大类:文本文件和二进制文件。文本文件存的都是字符串,也就是“合法的字符”,例如.txt、.java、.cpp文件。二进制文件存什么都可以。用简单的方式判断为哪种类型的文件,用notepad的方式打开,查看是否乱码。

二、Java文件操作

2.1. File概述

        Java中通过java.io.File类来对⼀个⽂件(包括⽬录)进⾏抽象的描述。注意,有File对象,并不代表真实存在该⽂件。

  • 属性

        在 Java 中,File类的属性主要用于表示系统相关的路径分隔符,具体如下:

修饰符及类型属性说明
static StringpathSeparator依赖于系统的路径分隔符,String的类型表示
static charpathSeparator依赖于系统的路径分隔符,char的类型表示
  • 构造方法
签名说明
File(File parent, String child)根据父目录与孩子文件路径,创建一个新的File实例
File(String pathname)根据文件路径创建一个新的File实例,路径可以是绝对路径或者相对路径
File(String parent, String child)根据父目录与孩子文件路径,创建一个新的File实例,父目录用路径表示
  • 方法
import java.io.File;
import java.io.IOException;public class Demo1 {public static void main(String[] args) throws IOException {File file = new File("./test.txt");System.out.println(file.getParent());// 返回File对象的⽗⽬录⽂件路径System.out.println(file.getName());// 返回File对象的纯⽂件名称System.out.println(file.getPath());// 返回File对象的文件路径System.out.println(file.getAbsoluteFile());// 返回File对象的绝对路径System.out.println(file.getCanonicalPath());// 返回File对象修饰过的绝对路径,还有一个异常需要处理}
}

import java.io.File;public class Demo2 {public static void main(String[] args) {File file = new File("d:/test.txt");System.out.println(file.exists());// 判断文件是否存在System.out.println(file.isDirectory()); // 判断是否是目录System.out.println(file.isFile()); // 判断是否是文件}
}

import java.io.File;
import java.io.IOException;public class Demo3 {public static void main(String[] args) throws IOException {File file = new File("./test.txt");file.createNewFile(); // 创建文件file.delete(); // 删除文件}
}

import java.io.File;
import java.io.IOException;
import java.util.Scanner;public class Demo3 {public static void main(String[] args) throws IOException {File file = new File("./test.txt");file.createNewFile(); // 创建文件System.out.println("文件创建成功");file.deleteOnExit(); // 程序退出时删除文件System.out.println("使用deleteOneExit");
//        file.delete(); // 删除文件Scanner in = new Scanner(System.in);System.out.println("输入任意内容,退出程序");in.next();}
}

        上面这个代码的作用:我们在使用Office这些办公软件时,当我们编辑这些文档时,会出现一个隐藏文件,关闭的时候就会消失。特别是当电脑突然关机时,未保存的内容没有写到硬盘上就会消失。Office这样的程序就会通过隐藏文件保存起来。

http://www.lryc.cn/news/613632.html

相关文章:

  • linux顽固进程查看并清理
  • 华为服务器中Mindie镜像的部署及启动方法
  • Python 基础详解:数据类型(Data Types)—— 程序的“数据基石”
  • AI代码审查大文档处理技术实践
  • 【MySQL】SQL优化
  • LG P7447 [Ynoi2007] rgxsxrs Solution
  • 树莓派安装OpenCV环境
  • 代码库详细笔记
  • 使用 Tauri 开发 Android 应用:环境搭建与入门指南
  • 进程间数据的关联与隔离
  • Next.js 15 重磅发布:React 19 集成 + 性能革命,开发者必看新特性指南
  • 代码随想录day58图论8
  • 一个设备或系统能够同时管理和监控两个摄像头的配
  • Ethereum: 像Uniswap V3贡献者一样开发,克隆、编译与测试v3-core
  • 【Unity Plugins】使用Magica Cloth 2 实现头发和服饰的效果模拟
  • 职责链模式应用场景与C++实现
  • 前端开发工具大全
  • 大疆前端笔试题目详解
  • PostgreSQL 强制索引:当重复数据让优化器“失明”时的解决方案
  • 实验室课程|基于SprinBoot+vue的实验室课程管理系统(源码+数据库+文档)
  • vue3 el-select 加载内容后 触发事件
  • Mysql自定义顺序查询
  • Mysql 单行函数 聚合函数
  • 六类注定烂尾的甲方软件外包必看!这类甲方不要理-优雅草卓伊凡
  • sigprocmask 函数深度解析
  • 【指南版】网络与信息安全岗位系列(三):安全运维工程师
  • Redis 分布式Session
  • Redis面试精讲 Day 16:Redis性能监控与分析工具
  • 锡膏种类多,不同的锡膏有什么区别,该如何正确选择?
  • 深入理解 ReentrantLock和AQS底层源码