栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

高级API 快速入门之第一章 File类的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

高级API 快速入门之第一章 File类的使用

一:File类的基本概念:

       一个类,处于JavaAPI中的io包中,需要进行导包。
           IO包的作用:对文件进行读(读取文件中的信息内容)和写(将内容保存到文件中)
         作用:对文件进行创建,删除,修改等操作。但是不能将信息保存在文件中

         File的概念:对一个磁盘路径下的文件夹或文件的路径进行一个抽象的描述

注意:在java中,不管是文件还是文件夹都是叫做File对象

二:File类的常用方法:
    isFile 判断是否是文件 isDirectory 判断是否是目录(文件夹) isHidden判断是否是隐藏文件 exists 判断所关联的文件是否存在 createNewFile 创建一个文件 mkdir 创建一个文件夹 getPath 获得文件的路径  getName 获得文件名  getParent是获得文件的上一次父目录的名字(父路径) length获得文件长度,以字节为单位 lastModified获得文件的最后修改时间 返回类型为long delete删除指定路径的文件(不能删除不能为空的文件夹) list  获得文件夹下面所有文件的名字  listFile 是获得文件夹下面的所有文件对象 listRoots获得当前系统的盘符

三:方法讲解

通过File(String path);来构建一个File对象以此来描述电脑上的某一个文件或文件夹信息

File f1 = new File("D:\hello");

判断文件或文件夹是否存在?

if(f1.exists()) {//true
			System.out.println("已存在"+f1.exists());
	}else {
			System.out.println("不存在"+f1.exists());
		}

如果使用exists方法判断文件不存在 那么使用创建的方法来创建文件

if(!f1.exists()) {
			boolean b = f1.createNewFile();
			if(b == true) {
			System.out.println("创建成功");
			}else {
			System.out.println("已创建");
			}
			
		}else {
			System.out.println("已存在了");
		}

给定一个指定路径的File对象,来创建文件夹

if(!f1.exists()) {
			//创建文件夹
			f1.mkdir();
			System.out.println("创建文件夹成功");
		}

D盘下创建一个文件夹a b c d e f g

File f2 = new File("D:\a\b\c\d\e\f\g");

多级文件夹创建  mkdirs

if(!f2.exists()) {
			f2.mkdirs();
		}
		

注意:delete删除方法 删除文件可以
       但是删除文件夹时,该文件夹必须是空的。

 

File对象中常用的方法(获取功能)

		File file = new File ("D:\Zking_course\ZKINGZZ商城数据库.xmind");
		
		System.out.println(file.getName());//获取文件名称
		System.out.println(file.getAbsolutePath());//获取文件的绝对路径
		System.out.println(file.getPath());//获取路径
		System.out.println(file.getParent());//获取父级路径
		System.out.println(file.length());//字节数
		
		//获取最后的修改时间
		long time = file.lastModified();//这个毫秒值是1970年1月1日到当前系统时间的毫秒差
		Date date = new Date(time);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:SSS");
		String format = sdf.format(date);
		System.out.println("该文件最后修改的时间为: "+format);
		

File对象的常用功能(判断功能)  

File file = new File ("D:\Zking_course\ZKINGZZ商城数据库.xmind");
		System.out.println(file.isFile());//判断是否为文件?
	System.out.println(file.isDirectory());//判断是否为文件夹
		System.out.println(file.isHidden());//判断是否为隐藏文件

获取某个目录下的所有文件名

File file = new File("D:\");
		String[] names = file.list();
		for (String name : names) {
			System.out.println(name);
		}

获取某个目录下的所有文件信息

File file = new File("D:\");
		File files[] = file.listFiles();
		for (File file2 : files) {
			System.out.println(file2.getName()+"----"+file2.length());
		}

获取电脑上的所有磁盘

File[] listRoots = File.listRoots();
		for (File file : listRoots) {
			System.out.println(file.getPath());
		}
		
三:递归

      递归:适用于Java的方法
       核心:方法调用方法本身

递归的方式实现1+2+3...+100

public int mysum(int num) {//3
		if(num == 1) {
			return 1;
		}else {
			return num+mysum(num-1);
		}
	}
	

调用定义的递归方法:

Test t = new Test();
System.out.println(t.mysum(100));

使用递归的方式实现斐波那契数列的第21项是多少?

public int sb(int n) {
		if(n == 1|| n== 2) {
			return 1;
		}else {
			return sb(n-1) + sb(n - 2);
		}
		
	}
	
Test t = new Test();
System.out.println(t.sb(21));
		

使用递归的方式实现某个目录下的所有文件(不管里面有多少个子文件夹 都会获取到其中的文件)

public void findFileAll(File file) {
		//1.先判断提供的文件对象是否是文件还是文件夹
		if(file.isFile()) {//如果是文件
			System.out.println(file.getPath());
		}else if(file.isDirectory()) {//如果是文件夹
			//2.获取该文件夹下所有为文件信息(包括文件夹以及文件)
			File[] listFiles = file.listFiles();
			if(listFiles == null) {//过滤掉系统文件  没有权限去访问
				return;
			}
			//3.遍历文件信息数组
			for (File file2 : listFiles) {
				//4.判断文件信息数组中的每一个file2对象是否是文件还是文件夹
				//利用递归的思想调用方法本身  再执行判断一次
				findFileAll(file2);
			}
		}
	}
Test t = new Test();
		File file = new File("D:\我的情书");
t.findFileAll(file);

使用递归的方式实现将某个目录下的所有.txt文件查找出来

public void findTxtAll(File file) {
		if(file.isFile()) {
//			System.out.println(file.getPath());
			//需求:限制文件的输出  只要txt  其他不需要   
			//先得到文件的名称
			String fileName = file.getName();
//			System.out.println(fileName);
			//筛选:  因为有些系统文件是没有扩展名也没有.
			int index = fileName.lastIndexOf(".");
			if(index!=-1) {
				//截取扩展名 substring
				String hz = fileName.substring(index);
//				System.out.println(hz);
				if(".mp4".equals(hz)) {
					System.out.println(fileName);
				}
			}
		}else if(file.isDirectory()) {
			File[] listFiles = file.listFiles();
			for (File file2 : listFiles) {
				findTxtAll(file2);
			}
		}
	}
Test t = new Test();
		File file = new File("D:\我的情书");
    	t.findTxtAll(file);

删除指定目录下的指定文件(.txt)

public void delTxtAll(File file) {
		if(file.isFile()) {
//			System.out.println(file.getPath());
//			获取文件名
			String fileName = file.getName();
			int index = fileName.lastIndexOf(".");
			if(index!=-1) {
				String hz = fileName.substring(index);
				if(".txt".equals(hz)) {
					file.delete();
				}
			}
		}else if(file.isDirectory()) {
			File[] listFiles = file.listFiles();
			if(listFiles==null) {
				return;
			}
			for (File file2 : listFiles) {
				delTxtAll(file2);
			}
		}
	}
	
	
	
		Test t = new Test();
		File file = new File("D:\我的情书");
		
		t.delTxtAll(file);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号