java--基础--14--File

2023-11-09

java–基础–14–File


1、介绍

用于操作文件和目录(文件夹)

1.1、构造方法:

  • File(String pathname):根据一个路径得到File对象
  • File(String parent, String child):根据一个目录parent和一个子文件child/目录child 得到File对象
  • File(File parent, String child):根据一个parent对象和一个子文件child/目录child得到File对象

1.2、常用方法

  • boolean createNewFile():当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
  • boolean canRead():测试应用程序是否可以读取此抽象路径名表示的文件。
  • boolean canWrite():测试应用程序是否可以修改此抽象路径名表示的文件。
  • boolean delete():删除此抽象路径名表示的文件或目录。
  • boolean exists():测试此抽象路径名表示的文件或目录是否存在。
  • File getAbsoluteFile():返回此抽象路径名的绝对路径名形式。
  • String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。
  • String getName():返回由此抽象路径名表示的文件或目录的名称。
  • String getParent():返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
  • File getParentFile():返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
  • String getPath():将此抽象路径名转换为一个路径名字符串。
  • boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。
  • boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
  • long length():返回由此抽象路径名表示的文件的长度。
  • File[] listFiles():返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
  • File[] listFiles(FileFilter filter):返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
  • String[] list():返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
  • String[] list(FilenameFilter filter):返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
  • boolean mkdir():创建此抽象路径名指定的目录。
  • boolean mkdirs():创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
  • boolean renameTo(File dest):重新命名此抽象路径名表示的文件。
  • String toString():返回此抽象路径名的路径名字符串。
  • URI toURI():构造一个表示此抽象路径名的 file: URI。
  • long lastModified():返回此抽象路径名表示的文件最后一次被修改的时间。

2、常用方法 案例

2.1、案例1

//  当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 
System.out.println("--------createNewFile------------");
File file = new File("e:\\a.txt");
System.out.println("createNewFile:" + file.createNewFile());

//创建文件或者文件夹没写盘符路径,那么,默认在项目路径下
File f2=new File("a.txt");
f2.createNewFile();
//返回此抽象路径名的绝对路径名字符串。 
System.out.println(f2.getAbsolutePath());

System.out.println("--------mkdirs------------");
//  创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
File file2 = new File("a\\b\\c");
System.out.println("mkdirs:" + file2.mkdirs());
System.out.println(file2.getAbsolutePath());

System.out.println("--------delete------------");

// 删除此抽象路径名表示的文件或目录。 
System.out.println(f2.delete());


输出:
--------createNewFile------------
createNewFile:false
F:\developSource\eclipse\workSpace\day19_File\a.txt
--------mkdirs------------
mkdirs:false
F:\developSource\eclipse\workSpace\day19_File\a\b\c
--------delete------------
true
F:\developSource\eclipse\workSpace\day19_File\a.txt


//如果路径名相同,就是改名。 如果路径名不同,就是改名并剪切。
File f1=new File("2.jpg");
f1.createNewFile();
File f2=new File("a\\3.bmp");
System.out.println(f1.renameTo(f2));
输出:
true

这里写图片描述

2.2、案例21

// 创建文件对象
File file = new File("a\\3.bmp");
// 测试此抽象路径名表示的文件是否是一个目录
System.out.println("isDirectory:" + file.isDirectory());// false
//测试此抽象路径名表示的文件是否是一个标准文件
System.out.println("isFile:" + file.isFile());// true
//测试此抽象路径名表示的文件或目录是否存在。 
System.out.println("exists:" + file.exists());// true
//测试应用程序是否可以读取此抽象路径名表示的文件
System.out.println("canRead:" + file.canRead());// true
//测试应用程序是否可以修改此抽象路径名表示的文件
System.out.println("canWrite:" + file.canWrite());// true
//判断是否隐藏
System.out.println("isHidden:" + file.isHidden());// false


isDirectory:false
isFile:true
exists:true
canRead:true
canWrite:true
isHidden:false

这里写图片描述

2.3、案例3

// 创建文件对象
File file = new File("a\\3.bmp");
System.out.println("getPath:" + file.getPath());
// 返回由此抽象路径名表示的文件或目录的名称。 
System.out.println("getName:" + file.getName());
//  返回由此抽象路径名表示的文件的长度。  
System.out.println("length:" + file.length());
// 返回此抽象路径名表示的文件最后一次被修改的时间。 
System.out.println("lastModified:" + file.lastModified());
输出:
getPath:a\3.bmp
getName:3.bmp
length:0
lastModified:1491324885438

2.4、案例4

// * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
//public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
System.out.println("------ --public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组-----");
File f1=new File("H:\\java");

File[] fArr=f1.listFiles();
for (File f : fArr) {
	System.out.println(f);
}


System.out.println("-----public String[] list():获取指定目录下的所有文件或者文件夹的名称数组------");
String[] s=f1.list();
for (String s1 : s) {
   System.out.println(s1);
}
输出:
------ --public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组-----
H:\java\apache-maven-3.3.9
H:\java\apache-tomcat-7.0.57
H:\java\apache-tomcat-7.0.57 - bei
H:\java\apache-tomcat-7.0.57 - jenkins-8082
H:\java\apache-tomcat-7.0.57-Img-8081
H:\java\apache-tomcat-maven-hot-7080
H:\java\cache
H:\java\jdk1.7.0_60
H:\java\jre7
H:\java\svn
-----public String[] list():获取指定目录下的所有文件或者文件夹的名称数组------
apache-maven-3.3.9
apache-tomcat-7.0.57
apache-tomcat-7.0.57 - bei
apache-tomcat-7.0.57 - jenkins-8082
apache-tomcat-7.0.57-Img-8081
apache-tomcat-maven-hot-7080
cache
jdk1.7.0_60
jre7
svn

2.5、案例5

// * public String[] list(FilenameFilter filter)
//* public File[] listFiles(FilenameFilter filter)

File file = new File("E:\\aaa");
String[] s=file.list(new FilenameFilter() {
	//断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
	@Override
	public boolean accept(File dir, String name) {
		System.out.println(dir+"----"+name);
		return new File(dir,name).isFile()&&name.endsWith(".jpg");
	}
});
System.out.println("-------");
for (String string : s) {
	System.out.println(string);
}
System.out.println("-------");

File[] fArray=file.listFiles(new FilenameFilter() {
	
	@Override
	public boolean accept(File dir, String name) {
		System.out.println(dir+"----"+name);
		return new File(dir,name).isFile()&&name.endsWith(".jpg");
	}
});
for (File file2 : fArray) {
	System.out.println(file2.getName());
}
}
输出:
E:\aaa----a.jpg
E:\aaa----b
-------
a.jpg
-------
E:\aaa----a.jpg
E:\aaa----b
a.jpg

这里写图片描述

2.6、文件删除

/**  
 * @ClassName FileOperationTool
 * @Description TODO(这里用一句话描述这个类的作用)
 * @author feizhou
 * @Date 2018年4月20日 下午1:48:14
 * @version 1.0.0
 */
public class FileOperationTool {
	 /**
	  * 
	  * @Description (删除目录下的所有文件,包括目录)
	  * @author feizhou
	  * @Date 2018年4月20日下午2:14:34  
	  * @version 1.0.0
	  * @param path
	  * @return
	  */
    public static void delDirectoryIncludeDirectory(String folderPath) {  
    	  folderPath=folderPath.trim();
    	  //删除完里面所有内容  
    	  delDirectoryNotIncludeDirectory(folderPath);
             File file = new  File(folderPath);  
           //删除空文件夹  
             file.delete(); 
        
    }  
 /**
  * 
  * @Description (删除目录下的所有文件,不包括目录)
  * @author feizhou
  * @Date 2018年4月20日下午2:14:34  
  * @version 1.0.0
  * @param path
  * @return
  */
    public static boolean delDirectoryNotIncludeDirectory(String path) {  
        boolean flag = false;  
        File file = new File(path);  
        //文件或者目录不存在
        if (!file.exists()) {  
          return flag;  
        }  
        //不是目录
        if (!file.isDirectory()) {  
          return flag;  
        }  
        //获取目录下的所有文件名称
        String[] tempList = file.list();  
        File temp = null;  
        for (int i = 0; i < tempList.length; i++) {  
        	
           if (path.endsWith(File.separator)) {  
        	 //如果路径已/结尾, 路径+名称
              temp = new File(path + tempList[i]);  
           } else {  
        	   //如果路径不是已/结尾, 路径+/+名称
               temp = new File(path + File.separator + tempList[i]);  
           }  
           //如果是文件
           if (temp.isFile()) {  
              temp.delete();  
           }  
           //如果是目录,递归删除
           if (temp.isDirectory()) {  
        	   delDirectoryNotIncludeDirectory(path + "/" + tempList[i]);//先删除文件夹里面的文件  
        	   delDirectoryIncludeDirectory(path + "/" + tempList[i]);//再删除空文件夹  
              flag = true;  
           }  
        }  
        return flag;  
      }  
    
    
   public static void main(String[] args) {
	   String path="E:\\test\\2222";
	   delDirectoryIncludeDirectory(path);
}

目录已经删除
可以对比看2222副本
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java--基础--14--File 的相关文章

随机推荐

  • Unity中Cg的基本语法和使用

    Cg是类似于C语言的发展起来的图形编程语言 Cgraphics 它的很多表达式if else 和C语言非常相像 也和C 非常相像 由于Shader是写给显卡执行的 所以没有输出语句来调试 很多地方调试不了 只能靠Unity编辑器来帮我们报错
  • valgrind和Kcachegrind性能分析工具详解

    作者 zhuyong 原文地址 一 valgrind介绍 valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具 用于构建动态分析工具的装备性框架 它包括一个工具集 每个工具执行某种类型的调试 分析或类似的任务 以帮助完
  • web安全常用网络扫描端口漏洞利用

    端口 服务 入侵方式 21 ftp tftp vsftpd文件传输协议 爆破 嗅探 溢出 后门 22 ssh远程连接 爆破 openssh漏洞 23 Telnet远程连接 爆破 嗅探 弱口令 25 SMTP邮件服务 邮件伪造 53 DNS域
  • 如何快速搭建个人网站(服务器配置篇)

    关于服务器的购买和域名注册可以参考我的这篇博客 在使用之前 建议小白用户先下载一个Vmware 安装一个Ubuntu的虚拟环境学习一下linux的基础命令 一 远程服务器的连接 服务器购买好了以后我们需要进行远程连接我们的服务器 我个人推荐
  • Qt样式表总结

    概念 Qt的样式表主要是受到CSS的启发 通过调用setStyleSheet 可以为一个独立的子部件 整个窗口 甚至整个应用程序制定一个样式表 样式表具有继承关系 例如为一个QWidget类设置了样式表 那么QWidget类及其子类都会使用
  • C 语言 打印 int32_t int64_t 类型

    printf x PRId32 x PRId32 PRId64 是宏
  • SpringBoot 报错: Error creating bean with name ‘deptServiceImpl‘: Unsatisfied dependency expressed th

    报错 原因从网上可以得知 检查自己的Mapper文件有没有加入注解 Mapper Repository 和自己的deptServiceImpl 加入 Service 中引入的Mapper有没有用 Autowired 如图 如果上述都有 我们
  • Excel截取字符串:从指定第N个分隔符处截取

    目的 如下图 截取下面字符串中最后一个 后面的部分字符串 思路 1 利用SUBSTITUTE A2 将分隔符替换成空字符 如下图 2 利用LEN A2 LEN SUBSTITUTE A2 即可获取里面被替换掉了多少个分隔符 3 由于SUBS
  • 京东云无线宝可以服务器吗,京东云无线宝哪种上网方式收益最高,这点你一定得知道...

    京东云无线宝路由作为一款可以赚积分的路由器 备受关注 怎么能获取更高的积分 是大家一直都非常关心的 今天我们就来聊一聊 京东云无线宝路由采用哪种上网方式 收益最高 在京东云无线宝的后台 我们可以看到路由器一共提供了4种上网方式 分别为 拨号
  • Redfish介绍和Postman工具使用

    Redfish Redfish的诞生是为了替代IPMI 由于IPMI自身的局限性和安全性缺陷 IPMI 在2015年公布2 0 v1 1标准后 不再更新 被RedFish永久代替 Redfish 可扩展平台管理 API The Redfis
  • DQN Pytorch示例

    智能体是一个字母o 它卡在许多 之间 而要达到的目的是并确保o两侧都有 这需要让o能够向左右两边移动 而且速度略快于无动作时的自然移动速度 看起来就像下面那样 这是一种很简单的情形 pytorch版本 1 11 0 cu113 代码 因为每
  • gDDIM: Generalized denoising diffusion implicit models

    gDDIM Generalized denoising diffusion implicit models 论文链接 2206 05564 gDDIM Generalized denoising diffusion implicit mod
  • 【实践3】Python pandas读取Excel指定单元格 / 在指定单元格插入数据,不改变Excel格式

    简单介绍 有时会遇到只需将爬取的数据填入指定的单元格 而不需要更改Excel格式的情况 或是将一个Excel指定单元格内容复制后插入另一个Excel的单元格 完整代码 import pandas as pd from openpyxl im
  • Cmake常用命令(二)

    本文主要介绍File关键字 它是文件系统相关的操作的入口 读文件 命令 格式 解释 示例 READ file READ
  • 初探支付对账

    大家好 我是老三 好久不见 最近比较忙碌 状态也不是太好 很久没有输出 最近在做对账系统的调研和设计 给大家分享一些对账系统的知识 什么是对账 有个男人叫小帅 娶了个老婆 叫小美 早上 小美给小帅二十块钱买早餐 小帅买了包子 油条 豆浆回来
  • Golang jwt跨域鉴权

    Golang jwt跨域鉴权 JWT全称JSON Web Token是一种跨域认证解决方案 属于一个开放的标准 它规定了一种Token实现方式 目前多用于前后端分离项目和OAuth2 0 安装jwt go get github com dg
  • java中集合框架汇总

    Java 集合框架主要包括两种类型的容器 一种是集合 Collection 存储一个元素集合 另一种是图 Map 存储键 值对映射 Collection 接口又有 3 种子类型 List Set 和 Queue 再下面是一些抽象类 最后是具
  • 【Shell编程】字符截取命令cut、printf命令

    目录 cut命令 功能 语法 参数 实例 测试文本 提取所有行的姓名 提取所有行的姓名和评分 分割文本 提取 etc passwd中用户的用户名 cut命令的局限 printf命令 功能 语法 参数 输出类型 输出格式 实例 以字符串格式输
  • message.h

    文章目录 message h 概述 objc super objc msgSend objc msgSendSuper objc msgSend stret objc msgSendSuper stret objc msgSend fpre
  • java--基础--14--File

    java 基础 14 File 1 介绍 用于操作文件和目录 文件夹 1 1 构造方法 File String pathname 根据一个路径得到File对象 File String parent String child 根据一个目录pa