文件File类的学习

news2025/1/15 6:47:40

File类

  • File类
    • 创建File实例
    • 创建文件
    • 删除文件
    • 创建目录
  • Reader
  • 小结

File类

在java中,通过java.io.File类来对一个文件进行抽象的描述.
下面我们来看看File类的构造方法:
签名说明
File(File parent, String child)根据父目录+孩子文件路径,创建出一个新的File实例
File(String pathname)根据文件路径创建一个新的File实例,路径可以是绝对路径和相对路径
File(String parent, String child)根据父文件路径+孩子文件路径,创建一个新的File实例

下面我将通过一些方法熟悉一下文件操作:

创建File实例

public static void main(String[] args) throws IOException {
        // 使用绝对路径创建一个File实例
        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());
    }
    // d:\
	//test.txt
	//d:\test.txt
	//d:\test.txt
	//D:\test.txt

以上操作并没有真正创建文件,我们要通过调用createNewFile方法创建文件

创建文件

public static void main(String[] args) throws IOException {
        File file = new File("d:/test.txt");
        // 创建一个文件
        file.createNewFile();

        // 文件是否存在
        System.out.println(file.exists());
        // 是否是文件
        System.out.println(file.isFile());
        // 是否是目录
        System.out.println(file.isDirectory());
    }
    // 我们已经在d:/下创建了一个文件test.txt.
    // true
    // true
    // false

下面我们进行文件的删除操作, 有立即删除, 和在程序结束后删除两种情况:

删除文件

public static void main(String[] args) throws InterruptedException {
        File file = new File("d:/test.txt");
        // 直接删除
        //file.delete();
        // 等待程序退出后删除
        file.deleteOnExit();

        Thread.sleep(5000);
    }

创建目录

public static void main(String[] args) {
		// 以相对路径创建目录
        File file = new File("./testDir");
        // 创建目录
        file.mkdir();
        // 创建多级目录
        //file.mkdirs();
    }

在这里插入图片描述
可以看到, 当前创建了一个testDir目录.

Reader

public static void main(String[] args) throws IOException {
        // 构造方法: 1. 绝对路径 2. 相对路径  3.已经构造好的file对象
        // 只要try(){}执行完了,就会自动调用close方法
       try(Reader reader = new FileReader("./testDir/test.txt")) {
            while (true) {
                char[] buf = new char[1024];
                // 实际读到的字符个数
                int n = reader.read(buf);
                // n == -1: 表示读到末尾了
                if(n == -1) {
                    break;
                }

                for (int i = 0; i < n; i++) {
                    System.out.print(buf[i] + "");
                }
            }
       }

    }

在这里插入图片描述

小结

上述我们基于File类进行文件系统的操作, 在下篇博客将会使用文件流的方式操作文件系统,
希望有收获的小伙伴多多支持.

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

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

相关文章

web--crlf注入,url重定向,web资源处理

crlf漏洞 正常的数据包 更改过 就变成这样了 配合xss 然后那个xss脚本就会被启用 crlffuzz url重定向 后面有url地址 改成baidu.com然后再访问&#xff0c;他就会自动访问baidu 实例 web资源处理 对于一张图片 当我们这样 加载的时候&#xff0c;会 无限解压缩包 这是一个…

vue快速入门(三十四)组件data定义方法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 数据绑定方法照常数据定义方法需要作为函数返回值 源码 MyTest.vue <template><div><h1>我的功德&#xff1a;{{merits}} </h1><button click"meritsnum1">功德加一</button>…

什么是用户体验(UX)文案,为什么它很重要?

网上购物如今比以往任何时候都更加相关。所以我们将以此为例说明什么是用户体验&#xff08;UX&#xff09;文案&#xff0c;以及为什么它很重要。 假设你去了一个在线商店。你需要执行一系列操作&#xff1a; 找到合适的部分选择你感兴趣的产品弄清楚它们是什么&#xff0c;…

(超级详细)JAVA之Stream流分析-------持续更新喔!!!

学习目标&#xff1a; 掌握 Java Stream流的相关api 掌握 Java Stream流的基本实现 掌握 java Stream流的使用场景 代码已经整理上传到了gitee中&#xff0c;有需要的小伙伴可以取查看一下源码点个小心心喔 大家也可以帮我提交一点案例喔&#xff01;&#xff01;&#xff01;&…

java:观察者模式

java&#xff1a;观察者模式 1 前言 观察者模式&#xff0c;又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;他定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时&#xff0c;会通知所…

本地部署Docker容器可视化图形管理工具DockerUI并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

从0到1带你玩转pandas

学习 pandas 的过程可以分为几个阶段&#xff0c;每个阶段都围绕着不同的核心技能和概念。下面是一个为初学者设计的学习大纲&#xff1a; 一. 基础介绍 学习如何安装和设置 pandas 以及了解它的基本概念是开始使用 pandas 进行数据分析的第一步。下面我将详细介绍这些步骤&am…

overleaf如何使用中文(超简单)

LaTeX默认都是不支持中文的&#xff0c;有时候我们想输入中文。 1、编译器配置为XeLaTeX 菜单-编译器-XeLaTeX 2、代码开头添加宏包 \usepackage[UTF8]{ctex}

STM32 ADC转换器

一、ADC简介 ADC&#xff08;Analog-Digital Converter&#xff0c;模拟-数字转换器&#xff09;&#xff0c;可以将引脚上连续变化的模拟量转换为内存中存储的数字量&#xff0c;建立模拟电路到数字电路的桥梁 模拟量&#xff1a;时间和幅值均连续的信号&#xff0c;例如&…

YOLOv9训练结果分析->mAP、Precision、Recall、FPS、Confienc、混淆矩阵分析

简介 这篇博客&#xff0c;主要给大家讲解我们在训练yolov9时生成的结果文件中各个图片及其中指标的含义&#xff0c;帮助大家更深入的理解&#xff0c;以及我们在评估模型时和发表论文时主要关注的参数有那些。本文通过举例训练过程中的某一时间的结果来帮助大家理解&#xf…

Sigmoid激活函数

Sigmoid函数是一种常用的激活函数&#xff0c;其数学公式为&#xff1a; σ ( x ) 1 1 e − x \sigma(x) \frac{1}{1 e^{-x}} σ(x)1e−x1​ 其中&#xff0c; x x x 是函数的输入&#xff0c; σ ( x ) \sigma(x) σ(x) 是函数的输出。 sigmoid函数在神经网络中常被用于…

等待队列如何应用

等待队列 上一篇的程序写完出现了一个比较棘手的问题,运行应用程序就会发现,此时的read函数是非阻塞的,而实际使用场景往往需要我们在读取按键状态时阻塞,在用户按下按键之后read函数返回并得到按下按键的键值。阻塞用户空间的read当然可以在驱动层用一个死循环来实现,但…

【前端】vue的基础知识及开发指引

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Vue是什么二、学习 Vue.js 的基础知识三、熟悉 Vue.js 的生态系统四、掌握常用工具和库五、实践和项目开发六、 持续学习和跟进 前言 随着开发语言及人工智…

【office安装错误1402或1406】

office安装错误1402或1406 错误如图 解决方法 打开autoremove&#xff0c;点击扩展&#xff0c;输入1402&#xff0c;点击搜索 等待修复成功&#xff0c;再尝试安装office 软件每周六选择其他登录方式可以免费使用

深入探索GDB:Linux下强大的调试神器

目录 一、GDB简介&#xff1a;源码级调试的基石 二、GDB基础操作&#xff1a;从入门到熟练 启动与基本命令 三、GDB进阶功能&#xff1a;解锁更深层次的调试能力 1. 回溯追踪&#xff1a;洞察调用栈 2. 动态内存检测&#xff1a;揪出内存问题 3. 条件断点与观察点&#…

pyTorch框架部署实践

相关代码链接见文末 1.所需基本环境配置 首先&#xff0c;我们需要一个预先训练好的模型以及相应的配置。接下来&#xff0c;为了实际应用这个模型&#xff0c;我们必须搭建一个功能强大的服务器。这台服务器的核心任务是加载我们的模型&#xff0c;并能够接收用户上传的图片。…

关于Domain的查询命令

dig: 用来执行DNS查询&#xff0c;可以获取指定域名的所有类型的DNS记录。对网络管理员和开发人员尤其有用。 host: 一个简化版的DNS查询工具&#xff0c;适合快速查询域名的IP地址或某种类型的DNS记录。 nslookup: 另一个DNS查询工具&#xff0c;既支持交互模式也支持命令行模…

OFDM-OCDM雷达通信一体化信号模糊函数对比研究【附MATLAB代码】

文章来源&#xff1a;微信公众号&#xff1a;EW Frontier 1.引言 为提高频谱利用率并实现系统小型化、集成化,近年来雷达通信一体化系统成为重要研究方向。正交线性调频波分复用(OCDM)信号是利用菲涅尔变换形成的一组正交线性啁啾(chirp)信号,基于OCDM 的雷达通信一体化信号不…

架构师核心-云计算云上实战(云计算基础、云服务器ECS、云设施实战、云上高并发Web架构)

文章目录 云计算基础1. 概念1. 云平台优势2. 公有云3. 私有云4. IaaS、PaaS、SaaS 2. 云设施1. 概览2. 核心组件 云服务器ECS1. ECS介绍1. 简介2. 组件3. 概念4. 图解5. 规格6. 场景 2. ECS服务器开通1. 开通服务器2. 连接服务器 3. 云部署准备1. 1Panel介绍2. 安装1Panel3.安全…

<开源> 轮廓内缩外扩算法

轮廓内缩外扩算法 项目是论文A new offset algorithm for closed 2D lines with Islands的JAVA实现。 项目的GitHub地址&#xff1a;https://github.com/Lee-0o0/polygon-offset-algorithm。 参考博客 https://blog.csdn.net/qq_41261251/article/details/114462696