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

day18:File(构造方法、创建、删除文件或者文件夹、 判断性、重命名与剪切、得到性、过滤性)、递归(遍历文件夹文件)

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

day18:File(构造方法、创建、删除文件或者文件夹、 判断性、重命名与剪切、得到性、过滤性)、递归(遍历文件夹文件)

一 回顾

1.HashMap集合

         特点:  

                A.数据结构也是Hash表结构  

                B.多线程中是不安全  

                C.默认的数组的初始化容量是16

2.HashMap与HashSet的比较  

        相同点:都是hash表结构来存储  

        不同点:

                A.HashSet的底层就是使用HashMap来实现    

                B.HashSet的数据结构针对与是元素   HashMap的数据结构针对于键3.linkedHashMap    

        A.Map 接口的哈希表和链接列表实现,    

        B.具有可预知的迭代顺序    

        C.此实现不是同步的 多线程中不安全的

4.泛型:  

        泛型使用场景:在定义集合的时候 不确定其数据类型的时候 就可以使用泛型                                泛型就是一个特殊的变量 变量用于接收器数据类型

5.使用泛型      

        List<数据类型> 对象名 = new ArrayList<数据类型>();      

        注意点;        

                A.前后的泛型必须是一致的        

                B.在jdk1.7之后出现了菱形的泛型 后面的泛型可以省略        

                C.泛型只能是引用数据类型 不能是基本数据类型

6.定义泛型类:      

                语法:          

                        访问修饰符 class 类名<泛型> {              

                                所有的成员都可以使用其数据类型          

                        }

7.定义泛型的方法:        

        语法:          

                访问修饰师 <泛型>返回值类型 方法的名称(参数列表) {

                           方法体                  

                            return 返回值          

                }        

                注意点:          

                A.普通的成员方法是可以使用类的泛型          

                B.静态方法是不可以使用类的泛型

8.定义泛型的接口          

        A.实现类确定其泛型          

        B.实现类不确定其泛型

9.泛型的通配符 ?   一般作为方法的参数      

         ==> E本身或者是其子类      

         ==>E本身或者是其父类

10.map集合嵌套遍历11. 斗地主案例

六、file 6.1简介

1.文件和目录路径名的抽象表示形式==>可以把文件或者文件的路径构成一个File 可以使用其方法

2.路劲: 绝对路劲 与相对路径

3.绝对路劲:从根盘符开始的路径就是绝对路劲 例子:D:day02srcTest01.java

4.相对路径:相对于具体参照物的路径 在idea中基本都是使用的相对路径

相对路径

6.2 File的构造方法
构造方法的名称构造方法的描述
public File(File parent, Stringchild)根据 parent 抽象路径名和 child 路径名字符串创建一个新File 实例
public File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新File 实例
public File(String parent, Stringchild)根据 parent 路径名字符串和 child 路径名字符串创建一个新File 实例

代码

public class Test01 {
    public static void main(String[] args) throws IOException {
        File f = new File(new File("c:\admin"), "1.txt");
        File f1 = new File("c:\admin","2.txt");
        File f2 = new File("c:\admin\ad\3.txt");
    }
}
6.3 创建的方法
方法的名称方法的描述
public boolean createNewFile()创建文件
public boolean mkdir()创建文件夹(只能创建一级目录)
public boolean mkdirs()创建文件夹(创建多级目录)

//一般要有目录才能创建文件
//文件和目录不能同时创建
 //1.可以先创建目录,再创建文件

代码

 public static void main(String[] args) throws IOException {
        //一般要有目录才能创建文件
        //文件和目录不能同时创建
        //1.可以先创建目录,再创建文件
        //File file = new File("d:\admin\a");
        //这是创建一级目录,如果填写的有多级目录,则默认创建失败
        File file = new File("d:\admin");
        file.mkdir();
        //已经有admin的可以
        File file1 = new File("d:\admin\a\b");
        file1.mkdirs();

    }
6.4 删除文件或者文件夹
方法的名称方法 的描述
public boolean delete()删除文件以及空的文件夹(不能是多级目录)

注意点:使用delete的文件或者是空文件夹 是不会进回收站 

    //删除文件
        File file1 = new File("d:\admin\a\b\1.txt");
        //删除1.txt
        file1.delete();
        //删除空的文件夹
        File file2= new File("d:\admin\a\b");
        //删除b文件夹
        file2.delete();
        File file3= new File("d:\admin");
        //删除多级空文件夹,里面有文件则执行失败
        file3.delete();
6.5 案例

step01 需求

 step02 分析

1.创建多级目录的文件夹 mkdirs()

2.创建文件 createNewFile()

//一般要有目录才能创建文件
        //文件和目录不能同时创建
        //1.可以先创建目录,再创建文件
        //File file = new File("d:\admin\a");
        //这是创建一级目录,如果填写的有多级目录,则默认创建失败
        File file = new File("d:\admin");
        file.mkdir();
        //已经有admin的可以
        File file1 = new File("d:\admin\a\b");
        file1.mkdirs();
 6.6 判断性
方法的名称方法的描述
public boolean exists()测试此抽象路径名表示的文件或目录是否存在
public boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录
public boolean isFile()判断是否是文件
6.7 重命名与剪切
方法的名称方法的描述
public boolean renameTo(Filedest)重命名(在同一个目录下重命名)或者是剪切(在不同的目录执行的是剪切原来的目录不会再有)
//先要file的文件存在
File file1 = new File("d:\a\b\c\d.txt");
File file2 = new File("d:\a\b\c\d.pdf");
file1.renameTo(file2);
6.8 得到性的方法

    File f1 = new File("d:\a\b\c\d.txt");
        String absolutePath = f1.getAbsolutePath();
        System.out.println(absolutePath);
        System.out.println(f1.getPath());
        System.out.println(f1.getName());
        System.out.println(f1.getParent());
        System.out.println(f1.length());
d:abcd.txt
d:abcd.txt
d.txt
d:abc
0
File f1 = new File("d:\a\b\c");
System.out.println(f1.getName());

c

 6.9 过滤性

 代码-01

 public static void main(String[] args) {
        //File f1 = new File("d:\a\b\c");
        File file = new File("D:\admin");
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
        }
    }
a

 代码-03

 6.9.1 案例

step01 需求

step03 代码

 7.递归 7.1 简介

1.递 传递 归 归还 归一 在开发中递归就是方法自己调用自己 朝着不递归的方法去发展   将大小的范围逐渐变为小的范围

2.递归: 方法自己调用自己

3.注意点:   A.递归是朝着不递归的方向发展   方法参数会逐渐变小   B.递归容易产生栈内存溢出

7.2 数学中的递归

从大到小递归

public static void main(String[] args) {

    }
    public static int showNum(int num){
        if (num<1){
            return -1;
        }else if (num==1){
            return 1;
        }else {
            return num*showNum(num-1);
        }

    }

从小到大递归

public static void main(String[] args) {
        System.out.println(showNum(10));
    }
    public static int showNum(int num){
        if (num==1){
            return 1;
        }else if (num==2){
            return 1;
        }else {
            return showNum(num-1)+showNum(num-2);
        }

    }
7.3 递归的内存图

 

 7.4 案例

step01 需求:删除一个文件夹下面的所有的文件 包括自身 采用递归的方式

step02 分析

A.递归中方法的参数 文件对象File

B.istFile() 获取当前目录下所有文件以及目录

C.使用循环遍历数组 判断是目录 继续递归 不是目录 删除 delete()

 7.5 案例

step01

在控制台下打印c盘中所有的图片 使用递归的方式step02 分析

1.使用递归进行操作

2.是目录的时候需要递归

3.过滤出所有的图片 判断其后缀名

step03 代码

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

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

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