【JavaSE】Java基础语法(三十三):File 一文详解

这篇具有很好参考价值的文章主要介绍了【JavaSE】Java基础语法(三十三):File 一文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



【JavaSE】Java基础语法(三十三):File 一文详解

1. File类概述和构造方法

  • File类介绍

    • 它是文件和目录路径名的抽象表示
    • 文件和目录是可以通过File封装成对象的
    • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也
    • 可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • File类的构造方法
    【JavaSE】Java基础语法(三十三):File 一文详解

  • 示例代码

    public class FileDemo01 {
    	public static void main(String[] args) {
    		//File(String pathname): 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
    		File f1 = new File("E:\\snow\\java.txt");
    		System.out.println(f1);
    		
    		//File(String parent, String child): 从父路径名字符串和子路径名字符串创建新的 File实例
    		File f2 = new File("E:\\snow","java.txt");
    		System.out.println(f2);
    		
    		//File(File parent, String child): 从父抽象路径名和子路径名字符串创建新的File实例
    		File f3 = new File("E:\\snow");
    		File f4 = new File(f3,"java.txt");
    		System.out.println(f4);
    	}
    }
    

2. 绝对路径和相对路径

  • 绝对路径
    是一个完整的路径,从盘符开始
  • 相对路径
    是一个简化的路径,相对当前项目下的路径
  • 示例代码
    public static void main(String[] args) {
    	// 是一个完整的路径,从盘符开始
    	File file1 = new File("D:\\snow\\a.txt");
    	
    	// 是一个简化的路径,从当前项目根目录开始
    	File file2 = new File("a.txt");
    	File file3 = new File("模块名\\a.txt");
    }
    

3. File类创建功能【应用】

  • 方法分类
    【JavaSE】Java基础语法(三十三):File 一文详解

  • 示例代码

public class FileDemo02 {
	public static void main(String[] args) throws IOException {
		//需求1:我要在E:\\snow目录下创建一个文件java.txt
		File f1 = new File("E:\\snow\\java.txt");
		System.out.println(f1.createNewFile());
		System.out.println("--------");
		
		//需求2:我要在E:\\snow目录下创建一个目录JavaSE
		File f2 = new File("E:\\snow\\JavaSE");
		System.out.println(f2.mkdir());
		System.out.println("--------");
		
		//需求3:我要在E:\\snow目录下创建一个多级目录JavaWEB\\HTML
		File f3 = new File("E:\\snow\\JavaWEB\\HTML");
		// System.out.println(f3.mkdir());
		System.out.println(f3.mkdirs());
		System.out.println("--------");
		
		//需求4:我要在E:\\snow目录下创建一个文件javase.txt
		File f4 = new File("E:\\snow\\javase.txt");
		// System.out.println(f4.mkdir());
		System.out.println(f4.createNewFile());
	}
}

4. File类删除功能【应用】

  • 方法分类
    【JavaSE】Java基础语法(三十三):File 一文详解
    只能删除文件或者空文件夹

  • 示例代码

public class FileDemo03 {
	public static void main(String[] args) throws IOException {
		// File f1 = new File("E:\\snow\\java.txt");
		//需求1:在当前模块目录下创建java.txt文件
		File f1 = new File("myFile\\java.txt");
		// System.out.println(f1.createNewFile());
		
		//需求2:删除当前模块目录下的java.txt文件
		System.out.println(f1.delete());
		System.out.println("--------");
		
		//需求3:在当前模块目录下创建snow目录
		File f2 = new File("myFile\\snow");
		// System.out.println(f2.mkdir());
		
		//需求4:删除当前模块目录下的snow目录
		System.out.println(f2.delete());
		System.out.println("--------");
		
		//需求5:在当前模块下创建一个目录snow,然后在该目录下创建一个文件java.txt
		File f3 = new File("myFile\\snow");
		// System.out.println(f3.mkdir());
		File f4 = new File("myFile\\snow\\java.txt");
		// System.out.println(f4.createNewFile());
		
		//需求6:删除当前模块下的目录snow
		System.out.println(f4.delete());
		System.out.println(f3.delete());
	}
}

5. File类判断和获取功能【应用】

  • 判断功能
    【JavaSE】Java基础语法(三十三):File 一文详解

  • 获取功能
    【JavaSE】Java基础语法(三十三):File 一文详解

  • 示例代码

    public class FileDemo04 {
    	public static void main(String[] args) {
    		//创建一个File对象
    		File f = new File("myFile\\java.txt");
    		// public boolean isDirectory():测试此抽象路径名表示的File是否为目录
    		// public boolean isFile():测试此抽象路径名表示的File是否为文件
    		// public boolean exists():测试此抽象路径名表示的File是否存在
    		System.out.println(f.isDirectory());
    		System.out.println(f.isFile());
    		System.out.println(f.exists());
    		
    		// public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
    		// public String getPath():将此抽象路径名转换为路径名字符串
    		// public String getName():返回由此抽象路径名表示的文件或目录的名称
    		System.out.println(f.getAbsolutePath());
    		System.out.println(f.getPath());
    		System.out.println(f.getName());
    		System.out.println("--------");
    		
    		// public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File
    		对象数组
    		File f2 = new File("E:\\snow");
    		File[] fileArray = f2.listFiles();
    		for(File file : fileArray) {
    			// System.out.println(file);
    			// System.out.println(file.getName());
    			if(file.isFile()) {
    				System.out.println(file.getName());
    			}
    		}
    	}
    }
    

6. 6File类练习一【应用】

  • 案例需求
    在当前模块下的aaa文件夹中创建一个a.txt文件

  • 实现步骤

    • 创建File对象,指向aaa文件夹
    • 判断aaa文件夹是否存在,如果不存在则创建
    • 创建File对象,指向aaa文件夹下的a.txt文件
    • 创建这个文件
  • 代码实现

    public class Test1 {
    	public static void main(String[] args) throws IOException {
    		//练习一:在当前模块下的aaa文件夹中创建一个a.txt文件
    		/* File file = new File("filemodule\\aaa\\a.txt");
    		file.createNewFile();*/
    		//注意点:文件所在的文件夹必须要存在.
    		//1.创建File对象,指向aaa文件夹
    		File file = new File("filemodule\\aaa");
    		//2.判断aaa文件夹是否存在,如果不存在则创建
    		if(!file.exists()){
    			//如果文件夹不存在,就创建出来
    			file.mkdirs();
    		}
    		//3.创建File对象,指向aaa文件夹下的a.txt文件
    		File newFile = new File(file,"a.txt");
    		//4.创建这个文件
    		newFile.createNewFile();
    	}
    }
    

7. File类练习二【应用】

  • 案例需求
    删除一个多级文件夹

  • 实现步骤

    • 定义一个方法,接收一个File对象
    • 遍历这个File对象,获取它下边的每个文件和文件夹对象
    • 判断当前遍历到的File对象是文件还是文件夹
    • 如果是文件,直接删除
    • 如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
    • 参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹
  • 代码实现

    public class Test2 {
    	public static void main(String[] args) {
    		//练习二:删除一个多级文件夹
    		//delete方法
    		//只能删除文件和空文件夹.
    		//如果现在要删除一个有内容的文件夹?
    		//先删掉这个文件夹里面所有的内容.
    		//最后再删除这个文件夹
    		File src = new File("C:\\Users\\apple\\Desktop\\src");
    		deleteDir(src);
    	}
    	
    	//1.定义一个方法,接收一个File对象
    	private static void deleteDir(File src) {
    		//先删掉这个文件夹里面所有的内容.
    		//递归 方法在方法体中自己调用自己.
    		//注意: 可以解决所有文件夹和递归相结合的题目
    		//2.遍历这个File对象,获取它下边的每个文件和文件夹对象
    		File[] files = src.listFiles();
    		//3.判断当前遍历到的File对象是文件还是文件夹
    		for (File file : files) {
    			//4.如果是文件,直接删除
    			if(file.isFile()){
    				file.delete();
    			}else{
    				//5.如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
    				deleteDir(file);//参数一定要是src文件夹里面的文件夹File对象
    			}
    		}
    		//6.参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹
    		src.delete();
    	}
    }
    

【JavaSE】Java基础语法(三十三):File 一文详解文章来源地址https://www.toymoban.com/news/detail-463959.html

到了这里,关于【JavaSE】Java基础语法(三十三):File 一文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)

    String 表示 字符串类型,属于 引用数据类型 。Java 中 String 是 不可变 的。 在 Java 当中 双引号 括起来的字符串,是直接存储在“方法区”的“字符串常量池”当中的。 源码: 源码: 源码: 源码: 源码: 源码: 源码: 源码: https://blog.csdn.net/qq_44715943/article/details/116308837

    2024年02月06日
    浏览(33)
  • 【JavaSE】Java基础语法(十三):Java 中的集合(十分全面)

    List (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。 Set (注重独⼀⽆⼆的性质): 存储的元素是⽆序的、不可重复的。 Queue (实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。 Map (⽤ key 来搜索的专家): 使⽤键值对(key-value)存

    2024年02月10日
    浏览(32)
  • 【JavaSE】Java基础语法(二十三):递归与数组的高级操作

    递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算 递归的基本使用 递归的注意事项 递归一定要有出口。否

    2024年02月06日
    浏览(59)
  • 【从零开始学习JAVA | 第三十三篇】File类

    目录 前言: File类: 构造方法: 常见成员方法: 总结:         本文我们将为大家介绍JAVA中一个比较使用的类:File类,他为我们提供了存储数据的功能,使得程序的数据不至于在运行结束之后就丢失,是一个很好的类。         File类是Java标准库中用于操作文件和目录

    2024年02月15日
    浏览(32)
  • 第三十九天 Java基础学习(三十三)

    一、Servlet Java类。由Servlet容器(Tomcat)进行编译-.class -运行 产生响应结果返回给客户端浏览器。 生命周期:(方法调用流程) init:初始化方法。在第一次访问servlet时被调用一次。 service:完成servlet所做功能。每次访问servlet时都会被调用。 doGet0:只有get请求。才能访问。 doPos

    2024年02月15日
    浏览(31)
  • 【前端知识】React 基础巩固(三十三)——Redux的使用详解

    针对 React 基础巩固(三十二) 中的案例,我们希望抽取页面中共有的代码(例如下方的代码),使用高阶组件统一拦截。 为了让react和redux产生联系,安装一款工具 react-redux 使用 react-redux ,在index.js中统一注入store 新建about.js页面,通过 react-redux 引入store 在App.jsx中引入新的

    2024年02月15日
    浏览(41)
  • 【JavaSE】Java基础语法(十八):接口

    接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。 Java中接口存在的两个意义 用来定义规范 用来做功能的拓展 接口用interface修饰 类实现接口用implements表示 接口不能实例化 我们可以创建接口的实现类对象使用 接口的子类 要么重写接口中的所有抽

    2024年02月06日
    浏览(46)
  • 【JavaSE】Java基础语法(十六):抽象类

    当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽 象类! 抽象类和抽象方法必须使用 abstract 修饰 抽象类中不一定有抽

    2024年02月07日
    浏览(40)
  • 【JavaSE】Java基础语法(十二):ArrayList

    集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 ArrayList : 可调整大小的数组实现 是一种特殊的数据类型,泛型。 怎么用呢 ? 在出现E的地方我们使用引用数据类型替换即可 举例:ArrayList, ArrayList 成员方法 : 案例需求

    2024年02月06日
    浏览(48)
  • 【JavaSE】java刷题——基础语法熟练应用

    通过本篇题目,可以让初学Java的小伙伴们更加熟练Java的基础语法~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~  题述:编写程序数一下 1到 100 的所有整数中出现多少个数字9 分两步 取个位上的9  有9 19 29……99 有10个 取十位上的9  有90 91 92 93…

    2024年04月17日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包