存储和读写方案

认识File在这里插入图片描述

文件存储在磁盘中,而不是内存中。断电或者程序终止,文件还在。
广义的文件包括文件夹。
不能读写文件里面存储的数据,所以怎么办?
用IO流

功能

操作文件

在这里插入图片描述

在这里插入图片描述
这两种斜杠方式都可以。
在这里插入图片描述
在这里插入图片描述

相对路径不带盘符,默认在工程下,也可以用绝对路径

在这里插入图片描述
建议用相对路径
在这里插入图片描述
现在创建一个File对象,这个文件实际上不存在。

在这里插入图片描述
创建文件
在这里插入图片描述
创建文件夹
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里应为能删除空文件夹,不能删除非空文件夹。
可以删除空文件
在这里插入图片描述
注意是一级目录
在这里插入图片描述
在这里插入图片描述
上面的删除是可以真的删除掉。
在这里插入图片描述

文件搜索

需求:在D盘找到某个文件
分析:
1.拿到一级,遍历一级文件对象,判断是不是文件.
2.是文件判断是不是想要的.
3.不是文件,返回1

package com.itheima.demo2recursion;

import java.io.File;

public class FileSearchTest4 {
    public static void main(String[] args) {
        // 目标:完成文件搜索。找出D:盘下的QQ.exe的位置。
        try {
            File dir = new File("D:/");
            searchFile(dir , "QQ.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 搜索文件
     * @param dir 搜索的目录
     * @param fileName 搜索的文件名称
     */
    public static void searchFile(File dir, String fileName) throws Exception {
        // 1、判断极端情况
        if(dir == null || !dir.exists() || dir.isFile()){
            return; // 不搜索
        }

        // 2、获取目录下的所有一级文件或者文件夹对象
        File[] files = dir.listFiles();

        // 3、判断当前目录下是否存在一级文件对象,存在才可以遍历
        //不为空指针是怕没有权限,对应上文注意事项第二条
        //长度大于01对应第二条
        if(files != null && files.length > 0){
            // 4、遍历一级文件对象
            for (File file : files) {
                // 5、判断当前一级文件对象是否是文件
                if(file.isFile()){
                    // 6、判断文件名称是否和目标文件名称一致
                    if(file.getName().contains(fileName)){
                        System.out.println("找到目标文件:" + file.getAbsolutePath());
                        Runtime r = Runtime.getRuntime();
                        r.exec(file.getAbsolutePath());//启动这个程序
                        //执行时候的异常,原因是担心路径写错.因此把异常抛给上一级
                    }
                }else{
                    // 7、如果当前一级文件对象是文件夹,则继续递归调用
                    searchFile(file, fileName);
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值