穷穷116 2023-05-26 22:50 采纳率: 0%
浏览 7

简易Java文件管理器 + “Switch - case”语句 = ERROR?

想写一个Java文件管理器,帮我把不知道保存到哪里去了的命运二屏幕截图找出来, 一开始不加“switch — case”语句之前单独测试过,这两个功能都是可以的,但是加了之后就不行了,我实在看不出是什么地方有问题,就只能来请教大家了。


package 文件管理器;

import java.io.File;

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

public class 文件管理器 {

    public static void main(String[] args) {
        //输入字符串数据
        //System.out.println("想要使用“目标路径 + 后缀名 来查找文件");
        //System.out.println("请按“1”");
        //System.out.println("想要使用“目标路径 + 关键字 来查找文件");
        //System.out.println("请按“2”");
        
        Scanner sc = new Scanner(System.in);
        Scanner scanner = new Scanner(System.in);
        int Chioce = sc.nextInt();
        scanner.nextLine();
        switch(Chioce){
        case (1):
        //按后缀名查找
        String inputString_log =sc.nextLine();
        String inputString_extendname =sc.nextLine();
        
        指定后缀名检索文件 fileAccept = new 指定后缀名检索文件();
        File dir = new File(inputString_log);//文件目录"."是当前文件
        
        //调用方法
        fileAccept.setExtendName(inputString_extendname);
        
        String fileName[] = dir.list(fileAccept);
        for(String name:fileName) {
            System.out.println(name);
            System.out.println(dir.getName() + dir.getAbsolutePath());//获得绝对路径
        }
        break;
        
        case (2):
        //按关键词查找
        String directoryA =sc.nextLine();//最大的文件的目录
        String KeyWord =sc.nextLine();//关键词
        //传入数据(一步写成):
        List<String> result = 指定关键词检索文件.SearchFile(KeyWord,directoryA);
        System.out.println(result);//这里才输出数组
        break;
        
        case(5):break;
    }
    }
}

public class 指定关键词检索文件{
    public static List<String> SearchFile(String Keyword,String directory){
        
        List<String> result = new ArrayList<>();//创建String类型数组列表result
        
        
        File[] files= new File(directory).listFiles();//创建了一个目录文件对象
        
        
        for(File file:files) {
            if(file.isDirectory()){
                result.addAll(SearchFile(Keyword,file.getAbsolutePath()));
            }
            else{
                try {
                    String content = new String(Files.readAllBytes(Paths.get(file.getAbsolutePath())), StandardCharsets.UTF_8);
                    
                    if(content.contains(Keyword)){
                        result.add(file.getAbsolutePath());
                    }
                        
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
            }
            
        }
        return result;
    }
}


public class 指定后缀名检索文件 implements FilenameFilter {
    private String extendname;
    public void setExtendName(String s) {//设置后缀名
        extendname = "." + s;
    }
    public boolean accept(File dir,String name) {
        return name.endsWith(extendname);
    }
}
  • 写回答

2条回答 默认 最新

  • threenewbee 2023-05-26 23:06
    关注

    case 那里,不要括号啊。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了