Java File类详解(中)

  • File的常见成员方法
  • 判断、获取相关的方法

方法名称

说明

public boolean isDirectory()

判断此路径名表示的File是否为文件夹

public boolean isFile()

判断此路径名表示的File是否为文件

public boolean exists()

判断此路径名表示的File是否存在

public long length()

返回文件的大小(字节数量Bytes)

public String getAbsolutePath()

返回文件的绝对路径

public String getPath()

返回定义文件时使用的路径

public String getName()

返回文件的名称,带后缀

public long lastModified()

返回文件的最后修改时间(时间毫秒值)

方法使用示例:

import java.io.File;
import java.util.Date;public class FileDemo2 {public static void main(String[] args) {// 1.根据字符串表示的路径,变成File对象String path = "E:/JavaCode/Files/a.txt";File f1 = new File(path);// 2.方法使用示例System.out.println("isFile:" + f1.isFile());System.out.println("isDirectory:" + f1.isDirectory());System.out.println("exists:" + f1.exists());System.out.println("length:" + f1.length());System.out.println("getAbsolutePath:" + f1.getAbsolutePath());System.out.println("getPath:" + f1.getPath());System.out.println("getName:" + f1.getName());System.out.println("lastModified:" + new Date(f1.lastModified()));}
}

一种可能的输出为:

isFile:trueisDirectory:falseexists:truelength:131getAbsolutePath:E:\JavaCode\Files\a.txtgetPath:E:\JavaCode\Files\a.txtgetName:a.txtlastModified:Mon Dec 04 20:26:37 CST 2023
  1. 方法length()

方法length的作用是返回文件的大小(字节数量)。

1:这个方法只能获取文件的大小,单位是字节,如果单位我们要是M,G,可以不断的除以1024

2:这个方法无法获取文件夹的大小,如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起。

  1. 方法getName()

如果调用者是文件,本方法将返回该调用者的文件和后缀名,也即扩展名。如果调用者是文件夹:则返回的就是文件夹的名字。

  • 创建、删除相关的方法

方法名称

说明

public boolean createNewFile()

创建一个新的空的文件

public boolean mkdir()

创建单级文件夹

public boolean mkdirs()

创建多级文件夹

public boolean delete()

删除文件、空文件夹

delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站

  1. 方法createNewFile
  1. createNewFile创建一个新的空的文件。如果当前路径表示的文件是不存在的,则创建成功,方法返回true;如果当前路径表示的文件是存在的,则创建失败,方法返回false。
  2. 如果创建文件时其父级路径是不存在的,那么方法会有异常IOException。
  3. createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件。

  1. 方法mkdir
  1. windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false
  2. mkdir方法只能创建单级文件夹,无法创建多级文件夹。

import java.io.File;
import java.io.IOException;public class FileDemo3 {public static void main(String[] args) throws IOException {// 1.创建一个新的空的文件File f1 = new File("E:/JavaCode/Files/c.txt");boolean flag = f1.createNewFile();System.out.println(flag);// 2.mkdir// 细节1:windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false// 细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹。File f2 = new File("E:/JavaCode/Files/aaa");boolean flag2 = f2.mkdir();System.out.println(flag2);// 3.mkdirs 创建多级文件夹File f3 = new File("E:/JavaCode/Files/aaa/bbb/ccc");boolean flag3 = f3.mkdirs();System.out.println(flag3);}
}
  1. 方法delete

用来删除文件或文件夹。

  1. 如果删除的是文件,则直接删除,不走回收站。
  2. 如果删除的是空文件夹,则直接删除,不走回收站,
  3. 如果删除的是有内容的文件夹,则删除失败。
  • 获取并遍历相关的方法

方法名称

说明

public File[] listFiles()

获取当前该路径下所有内容

本方法的特点:

  1. 当调用者File表示的路径不存在时,返回null当调用者File表示的路径是文件时,返回null
  2. 当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
  3. 当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  4. 当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  5. 当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

import java.io.File;
import java.io.IOException;public class FileDemo5 {public static void main(String[] args) throws IOException {// 1.创建一个新的空的文件File f1 = new File("E:/JavaCode/");// 2.listFiles()方法//作用:获取aaa文件夹里面的所有内容,把所有的内容放到数组中返回File[] files = f1.listFiles();for (File file : files) {// file依次表示文件夹中每一个文件或文件夹System.out.println(file.getAbsolutePath());}}
}

  • 获取并遍历相关的方法

方法名称

说明

public static File[] listRoots()

列出可用的文件系统根

public String[] list()

获取当前该路径下所有内容

public String[] list(FilenameFilter filter)

利用文件名过滤器获取当前该路径下所有内容

public File[] listFiles()

获取当前该路径下所有内容

public File[] listFiles(FileFilter filter)

利用文件名过滤器获取当前该路径下所有内容

public File[] listFiles(FilenameFilter filter)

利用文件名过滤器获取当前该路径下所有内容

  1. 方法listRoots

文件系统根,对于Windows系统来说就是列出所有盘符。

  1. 方法list

获取当前目录下的内容。

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Arrays;public class FileDemo6 {public static void main(String[] args) throws IOException {// 1. listRoots 获取系统中所有的盘符File[] files = File.listRoots();System.out.println(Arrays.toString(files));System.out.println("===============");// 2. list 获取当前该路径下所有内容(仅仅能获取名字)File f1 = new File("E:/JavaCode/Files");String[] list = f1.list();for (String s : list) {System.out.println(s);}// 3. list(FilenameFilter filter) 利用文件名过滤器获取当前路径下的所有内容// 需求:获取目录下所有txt文件File f2 = new File("E:/JavaCode/Files");f2.list(new FilenameFilter() {//accept方法的形参,依次表示aaa文件夹里面每一个文件或者文件夹的路径// 参数一:父级路径// 参数二:子级路径//返回值:如果返回值为true,就表示当前路径保留//        如果返回值为false,就表示当前路径舍弃不要@Overridepublic boolean accept(File dir, String name) {File src = new File(dir, name);return src.isFile() && name.endsWith(".txt");}});}
}

  1. 方法listFiles(FileFilter filter)

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;public class FileDemo7 {public static void main(String[] args) throws IOException {// . listFiles(FileFilter filter) 利用文件名过滤器获取当前路径下的所有内容// 需求:获取目录下所有txt文件File f2 = new File("E:/JavaCode/Files");// FileFilterFile[] txtFiles1 = f2.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {return pathname.isFile() && pathname.getName().endsWith(".txt");}});// FilenameFilterFile[] txtFiles2 = f2.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {File src = new File(dir, name);return src.isFile() && name.endsWith(".txt");}});}
}

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

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

相关文章

在 CentOS 7 上使用 `redis` 用户安装 Redis 7.2.3 的完整步骤

在 CentOS 7 上使用 redis 用户安装 Redis 7.2.3 的完整步骤如下: 安装依赖:首先,您需要安装一些必要的软件包,以编译和运行 Redis。打开终端并执行以下命令: sudo yum install gcc make创建 Redis 用户:为…

Hadoop学习笔记(HDP)-Part.18 安装Flink

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

查看Linux服务器的CPU利用率常用的命令

查看Linux服务器的CPU利用率常用的命令 在Linux服务器上,可以使用多种命令来查看CPU的利用率。以下是一些常用的命令: 1 top命令: top 命令是一个实时的系统监视器,可以显示当前系统的 CPU 利用率、内存利用率、进程信息等。在…

sort by modulus of a complex number

描述 复数E包含实部x和虚部y, Exyi;E的模为: 输入n(<1000)和n对(x,y); 按模数升序对复合体进行排序&#xff0c;如果模数相等&#xff0c;则按输入顺序排序。 排序后输出n行of (x_i,y_i,mod_i)&#xff0c;保留2个十进制小数。 输入 输入n和n对(x,y); 输出 输出排序后的n行(…

驱动模块--内核模块

内核模块宏都有什么&#xff0c;分别有什么作用&#xff1f; 1.__init的作用: 展开后为&#xff1a;__attribute__((__section_(".init.text")))实际是gcc的一个特殊链接标记 指示链接器将该函数放置在.init.text区段&#xff0c;在模块插入时方便内核从ko文件指定位…

P=NP?

背景&#xff1a;   2000年5月24日&#xff0c;新罕布什尔州的克莱数学研究所列出了数学和计算机科学中七个未解决的问题。然而&#xff0c;直到今天&#xff0c;这些问题中只有一个被解决了&#xff0c;那就是庞加莱猜想&#xff08;Poincar Conjecture&#xff09;——被俄…

前端】全局替换(replace//g)

//比如\ [] " 以[]为例 var ch"微笑"; var str"[微笑]我是小仙女&#xff01;[微笑]我是小仙女&#xff01;";alert(str.replace(ch,"哈")); //输出 哈我是小仙女&#xff01;[微笑]我是小仙女&#xff01;var encodeeval("/"&q…

手机如何设置防骚扰电话?

很多人都曾接到过烦人的推销电话&#xff0c;这些电话不仅让人感到烦恼&#xff0c;而且有时候还会接二连三地打来&#xff0c;让人不胜其烦。我们的手机号码似乎已经被泄露&#xff0c;很难避免这些骚扰。 有时&#xff0c;我们因无法忍受骚扰电话而选择立即将其拉黑&#xff…

深入理解Redis分片策略:提升系统性能的关键一步

目录 引言 1. 一致性哈希算法 2. 范围分片 3. 哈希槽分片 实战经验分享 结论 引言 Redis作为一款高性能的键值存储系统&#xff0c;为了应对大规模数据和高并发的访问&#xff0c;引入了分片策略&#xff0c;使得数据能够分布存储在多个节点上&#xff0c;实现系统的横向…

考研数据结构

851专业课 线性表线性表的定义线性表的顺序表示顺序表代码 线性表的链式存储表示单链表代码 顺序表和链表的比较 栈和队列栈顺序栈链栈 队列顺序队列链队列 串和数组kmp数组广义表 树和二叉树二叉树二叉树代码 线索二叉树线索二叉树代码 树和森林树的存储结构 哈夫曼树 图图的存…

【原创】提升MybatisPlus分页便捷性,制作一个属于自己的分页插件,让代码更加优雅

前言 MybatisPlus的分页插件有一点非常不好&#xff0c;就是要传入一个IPage&#xff0c;别看这个IPage没什么大不了的&#xff0c;最多多写一两行代码&#xff0c;可这带来一个问题&#xff0c;即使用xml的查询没法直接取对象里面变量的值了&#xff0c;得Param指定xml中的变…

探索Selenium的规避检测策略

Selenium之规避检测 背景 ​ 目前很多大网站有对selenium采取了监测机制。在正常情况下我们用浏览器访问相关网站的window.navigator.webdriver的值为 undefined或者为false。而使用selenium访问则该值为true。我们如何伪装&#xff0c;防止被检测出来呢&#xff1f; ​ 这是…

POJ 3233 Matrix Power Series 动态规划(矩阵的幂)

一、题目大意 给出一个矩阵A&#xff0c; 输出矩阵B的每一项对M取余数的值。 二、解题思路 以二维矩阵为例&#xff0c;首先计算K2的情况&#xff0c;我们设结果矩阵为B 有如下表达式 那么不难看出&#xff0c;需要的矩阵其实就是以下的两个矩阵相乘后的左上角的N*N个 然后…

初识Linux——基本指令(详解)1

呀哈喽&#xff0c;我是结衣。 在学习数据结构的同时&#xff0c;也不要忘了Linux的学习啊。今天我们开始Linux的教学&#xff0c;在学习之前我们肯定要会搭建Linux的学习环境&#xff0c;在我们的以前的博客里是有讲解的&#xff0c;所以所以这里我们就不在多说&#xff0c;我…

UDP数据报套接字

文章目录 DatagramSocket APIDatagramPacket API示例一: 请求响应UDP服务端UDP客户端 DatagramSocket API Socket是操作系统中的一个概念&#xff0c;本质上是一种特殊的文件&#xff0c;Socket就属于把“网卡”这个设备给抽象成了文件。往 Socket 文件中写数据&#xff0c;就…

Usergolang 一些优质关于sip协议包

在Go语言中&#xff0c;有一些优质的SIP协议包&#xff0c;适用于构建SIP客户端和服务器。以下是其中一些常用的SIP库&#xff1a; 1. **github.com/cloudwebrtc/sip:** - GitHub 地址&#xff1a;[cloudwebrtc/sip](https://github.com/cloudwebrtc/sip) - 该库提供了用…

深入探讨Guava的缓存机制

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;今天咱们聊聊Google Guava的缓存机制。缓存在现代编程中的作用非常大&#xff0c;它能提高应用性能&#xff0c;减少数据库压力&#xff0c;简直就是性能优化的利器。而Guava提供的缓存功能&#xff0c;不仅强大…

iptables入门

今天我的工作遇到了巡检网络配置的任务&#xff0c;这次巡检的主机都是运行十多年的机器&#xff0c;并不是新的firewalld&#xff0c;基本都是iptables&#xff0c;上学的时候以为这些都没人用&#xff0c;所以没有认真学习&#xff0c;现在需要用到了&#xff0c;所以写一篇文…

PostGIS学习教程九:空间连接

PostGIS学习教程九&#xff1a;空间连接 空间连接&#xff08;spatial joins&#xff09;是空间数据库的主要组成部分&#xff0c;它们允许你使用空间关系作为连接键&#xff08;join key&#xff09;来连接来自不同数据表的信息。我们认为“标准GIS分析”的大部分内容可以表示…

17.认识下Docker之docker的核心原理(2)

1.容器-我的小世界 不知道大家看没看过小说《完美时间》&#xff0c;里面石昊经常进入一个小世界在里面与世隔绝的修炼或者战斗&#xff0c;总之就是在一个完全封闭的空间里做他想做的事情而与外界隔离&#xff0c;不受侵扰。通过前面的分析我们知道&#xff0c;Namepace让应用…