java 文件File类概述

前言

在Java中,File类是一个与文件和目录(文件夹)路径名相关的抽象表示形式。它是java.io包中的一个重要类,用于表示和操作文件系统中的文件和目录。

File类的基本概念

  1. 表示路径:File类既可以表示文件路径,也可以表示目录路径。它是文件和目录路径名的抽象表示。
  2. 封装:Java通过File类将文件或目录封装成对象,使得对文件和目录的操作变得更加直观和方便。

一、三种构造方法创建File实例

如何实现: 

//三种创建File实例方法
import java.io.File;

public class FileDemo {
    public static void main(String[] args) {
        //File(String pathname)通过将给定的路径名字符串转化为抽象路径名来创建新的File实例
        File f1 = new File("E:\\itcast\\java.txt");
        System.out.println(f1);       //E:\itcast\java.txt 说明重写了

        //从父路径名字符串和子路径名字符串创建新的File实例
        File f2 = new File("E:\\itcast","java.txt");
        System.out.println(f2);       //E:\itcast\java.txt

        //从父抽象路径名和子路径名字符串来创建新的File实例
        File f3 = new File("E:\\itcast");
        File f4 = new File(f3,"java.txt");
        System.out.println(f4);       //E:\itcast\java.txt

    }
}

二、File类创建文件和目录

一些常用方法:

public boolean createNewFile()//当具有该名称的文件不存在时,创建一个由该抽象路径名命名的空文件
public boolean mkdir()创建由此抽象路径名命名的路径
public boolean mkdirs()创建由此抽象路径名命名的路径,包括任何必须但不存在的父目录
//注意三个方法都是布尔类型,创建成功返回true,创建失败返回false

如何使用:

import java.io.File;
import java.io.IOException;


public class FileDemo_02 {
    public static void main(String[] args) throws IOException {

        //1、在E:\\itcast目录下创建一个文件java.txt
        File f1 = new File("E:\\itcast\\java.txt");
        System.out.println(f1.createNewFile());

        //2、在E:\\itcast目录下创建一个目录JavaSE
        File f2 = new File("E:\\itcast\\JavaSE");
        System.out.println(f2.mkdir());

        //3、在E:\\itcast目录下创建多级目录JavaWEB\\HTML
        File f3 = new File("E:\\itcast\\JavaWEB\\HTML");
        System.out.println(f3.mkdirs());

        //注意同级目录下目录名和文件名都不能一样,否则会报错
    }
}

三、文件和目录的删除

一般方法:

 public boolean delete():删除文件或目录

 如何使用:

import java.io.File;
import java.io.IOException;

public class FileDemo_04 {
    public static void main(String[] args) throws IOException {

        File f = new File("File");
        File f1 = new File("File\\java.txt");
        File f2 = new File("File\\itcast");

        System.out.println(f.mkdir());//创建目录
        System.out.println(f1.createNewFile());//创建文件
        System.out.println(f2.mkdir());

        //public boolean delete():删除文件或目录

        //System.out.println(f.delete());//如果该目录下有其他文件或目录,则无法直接删除该目录

        System.out.println(f1.delete());//一次只能删除一个
        //System.out.println(f2.delete());
    }
}

四、File类判断和获取功能

判断的方法:

 public boolean isDirectory():测试此抽象路径名是否是目录
 public boolean isFile():测试此抽象路径名是否是文件
 public boolean exists():测试此抽象路径名表示的File是否存在

获取文件路径的方法:

 public String getAbsolutePath():获取绝对路径
 public String getPath()//将此抽象路径转换为路径名字符串
 public String getName()//返回此路径名表示的文件或目录

获取当前目录下所有的文件:

public String[] list():返回此路径名下的所有文件和目录名的字符串数组
public File[] listFiles():返回此路径名下的所有文件和目录名的地址字符串数组

如何使用:

public class FileDemo_03 {
    public static void main(String[] args) {
        //public boolean isDirectory():测试此抽象路径名是否是目录
        //public boolean isFile():测试此抽象路径名是否是文件
        //public boolean exists():测试此抽象路径名表示的File是否存在

        File f1 = new File("java.txt");
        System.out.println(f1.isDirectory());//false
        System.out.println(f1.isFile());//true
        System.out.println(f1.exists());//true

        //public String getAbsolutePath():获取绝对路径
        //public String getPath()//将此抽象路径转换为路径名字符串
        //public String getName()//返回此路径名表示的文件或目录

        System.out.println(f1.getAbsolutePath());
        System.out.println(f1.getPath());
        System.out.println(f1.getName());
        System.out.println("--------");

        //public String[] list():返回此路径名下的所有文件和目录名的字符串数组
        //public File[] listFiles():返回此路径名下的所有文件和目录名的地址字符串数组
        File f2 = new File("E:\\itcast");

        String[] str1 = f2.list();
        for(String str:str1)
            System.out.println(str);
        System.out.println("--------");

        File[] str2 = f2.listFiles();
        for(File str:str2)
            System.out.println(str);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV高级图形用户界面(8)在指定的窗口中显示一幅图像函数imshow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在指定的窗口中显示一幅图像。 函数 imshow 在指定的窗口中显示一幅图像。如果窗口是以 cv::WINDOW_AUTOSIZE 标志创建的,图像将以原…

操作系统 和 初识进程

目录 操作系统(OS) 进程 操作系统(OS) 概念 操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。 操作系统的本质是一种进行软硬件管理的软件 笼统的理解&#xf…

用Java做智能客服,基于私有知识库

构建Java智能客服系统的整体思路 使用Java构建智能客服系统的整体思路是: 首先将客服QA文档以Word形式导入到系统中,通过向量化处理存入知识库。 当用户提出问题时,系统会根据问题内容从知识库中检索相关的上下文信息,并结合大…

字节跳动实习生投毒自家大模型细节曝光 影响到底有多大?

10月19日,字节跳动大模型训练遭实习生攻击一事引发广泛关注。据多位知情人士透露,字节跳动某技术团队在今年6月遭遇了一起内部技术袭击事件,一名实习生因对团队资源分配不满,使用攻击代码破坏了团队的模型训练任务。 据悉&#xf…

【动态规划】【斐波那契数列模型】解码方法

解码方法 91. 解码方法 算法原理 确定状态表示 经验题目要求:以 i 位置为结尾dp[i] 表示以 i 位置为结尾时,解码方法的总数 状态转移方程 定义好状态表示,我们就可以分析 i 位置的 dp 值,如何由 [前面] 或者 [后面] 的信息推…

Leetcode 1137. 第 N 个泰波那契数

原题链接&#xff1a;Leetcode 1137. 第 N 个泰波那契数 代码1&#xff1a; class Solution { public:int a[40];int tribonacci(int n) {a[0]0;a[1]1;a[2]1;if(n<1) return n;if(a[n]) return a[n];a[n]tribonacci(n-1)tribonacci(n-2)tribonacci(n-3);return a[n];} };代…

【LeetCode】每日一题 2024_10_19 使二进制数组全部等于 1 的最少操作次数 II(贪心)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;使二进制数组全部等于 1 的最少操作次数 II 力扣每日一题刷新规律&#xff0c;昨天刷新了 I&#xff0c;那今天必定有 II。 代码与解题思路 今天的题目和昨天的非常像&#xff0c;只有一…

SVM支持向量机python实现

支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种强大的监督学习算法&#xff0c;主要用于分类和回归任务。SVM的核心思想是找到一个最优的超平面&#xff0c;使得不同类别的数据点能够被尽可能清晰地分开&#xff0c;并且这个超平面与最近的数据点之间有…

SpringCloud无介绍快使用,单机Eureka服务注册中心cloud-eureka-server7001搭建(十)

TOC 问题背景 从零开始学springcloud微服务项目 注意事项&#xff1a; 约定 > 配置 > 编码IDEA版本2021.1这个项目&#xff0c;我分了很多篇章&#xff0c;每篇文章一个操作步骤&#xff0c;目的是显得更简单明了controller调service&#xff0c;service调dao项目源码以及…

微软的 Drasi:一种轻量级的事件驱动编程方法

微软的开源数据变化处理平台有望提供一种全新的方式来构建和管理可产生持续事件流的云应用程序。 Microsoft Azure 孵化团队是微软超大规模云中比较有趣的组成部分之一。它介于传统软件开发团队和研究组织之间&#xff0c;致力于构建大规模分布式系统问题的解决方案。 这些解决…

Kettle9.4支持Clickhouse数据源插件开发以及性能测试

前言 最近业务这边有个指标需要用到大数据这边的列式数据库进行处理&#xff0c;由于kettle不支持clickhouse数据源驱动&#xff0c;这里查了一下网上的相关资料&#xff0c;发现了一些别人开发好的驱动包&#xff0c;下载下来后使用效果不尽人意。总结下来有以下几个问题&…

【C++】string类(接口使用详解 下)

我们接着【C】string类&#xff08;接口使用详解 上&#xff09;-CSDN博客 继续介绍string的使用。 1.string类对象的修改操作 我们就说一下用的比较多的接口。 1.1 operator 这个接口可以尾插一个字符&#xff0c;或者一个字符串&#xff0c;或者一个对象。 string s1(&qu…

回归测试内容多,时间紧,人还少,怎么办?

问答网站上看到一个提问&#xff1a; 项目进入测试&#xff0c;但回归测试内容多&#xff0c;发布时间紧迫&#xff0c;人还少&#xff0c;要怎么做&#xff1f; 标准答案应该是自动化测试 回归测试主要关注的是历史功能&#xff0c;如果自动化测试覆盖率达到一定程度的话&…

lazyLoad

//1.通过React的lazy函数配合import()函数动态加载路由组件 > 路由组件代码会被分开打包 const Login lazy(()>import(/pages/Login)) //2.通过<Suspense>指定在加载得到路由打包文件前显示一个自定义loading界面 <Suspense fallback{<h1&…

探索Spring Cloud Config:构建高可用的配置中心

目录 认识Spring Cloud ConfigConfig Server读取配置文件步骤1&#xff1a;&#xff08;1&#xff09;创建config-server项目&#xff08;2&#xff09;在config-server中开启Config Server功能&#xff08;3&#xff09;在config-server配置文件进行相关配置&#xff08;4&…

计算机毕业设计Python深度学习房价预测 房源可视化 房源爬虫 二手房可视化 二手房爬虫 递归决策树模型 机器学习 深度学习 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 房地产是促进我国经济持续增…

征程 6E DISPLAY 功能介绍及上手实践

01 功能概述 本文将带大家一起实现单路、多路 MIPI CSI TX 输出、IDU 回写、IDU oneshot 模式、绑定输出 VPS 数据等功能&#xff0c;此处主要介绍各 sample 的实现与使用方法。 02 软件架构说明 本文中绑定 VPS 输出功能基于 libvio API 实现&#xff0c;调用 libvio 提供的…

Ubuntu16.04安装openssl库

Ubuntu16.04安装openssl库 Chapter1 Ubuntu16.04安装openssl库 Chapter1 Ubuntu16.04安装openssl库 原文链接&#xff1a;https://blog.csdn.net/weixin_36584476/article/details/107321893 记录一下省得忘了 1.首先去openssl官网下载源码www.openssl.org/source/&#xff0…

西瓜书书本内容杂谈

西瓜书书本内容杂谈 把圈子变小&#xff0c;把语速放缓&#xff0c;把心放宽&#xff0c;把生活打理好 只能说快速过了一遍&#xff0c;花了一个多星期吧&#xff0c;然后后边的内容是一点也看不懂了&#xff08;能发现前面记得比较详细&#xff0c;到了后边是看不懂一点了&a…

音视频基础知识分享

音视频基础知识分享 RKMedia的各个组件及其交互 首先上图&#xff1a; 考虑到公司业务主要是相机&#xff0c;所以&#xff0c;主要去关注图像数据流&#xff0c;对于音频数据流直接忽略。 图像数据流向&#xff1a; Camera Sensor将光信号转换成电信号&#xff08;Raw数据&…