搜索文件1.0

案例1: 扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Scanner;

public class demo1 {
    public static void main(String[] args) {
        //1.输入要找的文件目录及文件名
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入查找的目录:");
        File rootfile= new File(scanner.next());
        System.out.println("请输入查找的文件名称:");
        String searchWord=scanner.next();
        //2.判断输入目录是否合法
        File file=new File("rootPath");
        if(file.isFile()){
            System.out.println("输入查找路径错误");
        }
        //3.查找
        findFile(rootfile,searchWord);
    }

    private static void findFile(File rootfile, String serchWord) {
        File[] files=rootfile.listFiles();
        if(files==null){
            return;
        }
        for (File searchfile:files) {
            String filename=searchfile.getName();
            if(filename.contains(serchWord)){
                System.out.println("找到匹配文件:"+searchfile.getAbsoluteFile());
            }else if(searchfile.isDirectory()){
                findFile(searchfile,serchWord);
            }
        }

    }
}

案例2:进行普通文件的复制

import java.io.*;
import java.util.Scanner;

public class demo2 {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner scanner=new Scanner(System.in);
        //1.选择要复制文件的目录
        System.out.println("请输入复制复制文件的目录:");
        String srcPath=scanner.next();
        System.out.println("请输入要复制到的目录:");
        String desPath=scanner.next();


        //2.验证上述路径是否合法
        File srcFile=new File(srcPath);
        File desFile=new File(desPath);
        if(srcFile.isFile()){
            if (desFile.getParentFile().isDirectory()){
                copyFile(new File(srcPath), new File(desPath));
                System.out.println("复制成功");
            }else {
                System.out.println("输入的复制到目录不合法");
            }

        }else {
            System.out.println("输入的复制文件目录不合法");
        }


    }



    private static void copyFile(File srcFile, File desFile) throws FileNotFoundException {
        try(InputStream inputStream=new FileInputStream(srcFile); OutputStream outputStream=new FileOutputStream(desFile)){
            while (true){
                byte[] bytes=new byte[1024];
                int n=inputStream.read(bytes);
                if(n==-1){
                    break;
                }
                outputStream.write(bytes,0,n);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

案例3:扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)

import java.io.*;
import java.util.Scanner;

public class demo3 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入查询路径:");
        String pathFile=scanner.next();
        System.out.println("请输入内容:");
        String searchWord=scanner.next();
        //2.判断路径是否合法
        File file=new File(pathFile);
        if (file.isDirectory()){
            //查找
            searchFile(file, searchWord);


        }else{
            System.out.println("路径不合法");
        }
    }

    private static void searchFile(File rootFile, String searchWord) {
        File[] files=rootFile.listFiles();
        if(rootFile==null){
            return;
        }
        for (File f:files) {
            if (f.isFile()){
                matchWord(f,searchWord);
            }else if(f.isDirectory()){
                //查询子目录
                searchFile(f,searchWord);
            }
        }
    }

    private static void matchWord(File f, String searchWord) {
        try (Reader reader=new FileReader(f)){
            StringBuilder stringBuilder=new StringBuilder();
            while (true){
                int n=reader.read();
                if (n==-1){
                    break;
                }
                stringBuilder.append((char) n);
            }
            if (stringBuilder.indexOf(searchWord)>=0){
                System.out.println("找到匹配结果:"+f.getAbsoluteFile());
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

相关推荐

  1. 搜索文件1.0

    2024-04-21 23:48:03       38 阅读
  2. LeetCode-题目整理【10】:单词搜索

    2024-04-21 23:48:03       55 阅读
  3. Qt文本搜索

    2024-04-21 23:48:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 23:48:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 23:48:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 23:48:03       87 阅读
  4. Python语言-面向对象

    2024-04-21 23:48:03       96 阅读

热门阅读

  1. ubuntu 监控查看硬件温度

    2024-04-21 23:48:03       31 阅读
  2. Android --- 布局与点击事件

    2024-04-21 23:48:03       36 阅读
  3. 适配器模式

    2024-04-21 23:48:03       35 阅读
  4. C++入门

    2024-04-21 23:48:03       36 阅读
  5. 基于单目相机的标靶三维定位——编程实现

    2024-04-21 23:48:03       34 阅读
  6. 【NEUQ1007】C基础-计负均正

    2024-04-21 23:48:03       43 阅读
  7. 大唐杯题目

    2024-04-21 23:48:03       33 阅读
  8. 网络工程类面试非技术问题

    2024-04-21 23:48:03       32 阅读