当前位置: 首页 > 知识库问答 >
问题:

如何使用Java获取文件名中包含特定内容?

应俭
2023-03-14

这里我正在尝试读取一个包含.sql文件的文件夹,我将这些文件放在一个数组中,现在我的要求是读取每个文件并找到特定的单词,如join。如果join在文件中存在,返回文件名或丢弃,请有人帮助我这样做。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;

public class Filter {

    public static List<String> textFiles(String directory) {
        List<String> textFiles = new ArrayList<String>();
        File dir = new File(directory);
        for (File file : dir.listFiles()) {
            if (file.getName().endsWith((".sql"))) {
                textFiles.add(file.getName());
            }
        }
        return textFiles;

    }

    public static void getfilename(String directory) throws IOException {
        List<String> textFiles = textFiles(directory);
        for (String string : textFiles) {
            Path path = Paths.get(string);
            try (Stream<String> streamOfLines = Files.lines(path)) {
                Optional<String> line = streamOfLines.filter(l -> l.contains("join")).findFirst();
                if (line.isPresent()) {
                    System.out.println(path.getFileName());
                } else
                    System.out.println("Not found");
            } catch (Exception e) {
            }

        }
    }

    public static void main(String[] args) throws IOException {
        getfilename("/home/niteshb/wave1-master/wave1/sql/scripts");
    }
}

共有1个答案

於鸿羲
2023-03-14

您可以在文件中以belwo搜索word,传递文件的路径

try(Stream <String> streamOfLines = Files.lines(path)) {
  Optional <String> line = streamOfLines.filter(l -> 
                       l.contains(searchTerm))
                       .findFirst();
  if(line.isPresent()){
   System.out.println(line.get()); // you can add return true or false   
  }else
   System.out.println("Not found");
}catch(Exception e) {}

}

 类似资料:
  • 问题内容: 在Java中,是否有任何方法可以从文件中读取特定行?例如,读取第32行或任何其他行号。 问题答案: 除非你以前对文件中的行有一定的了解,否则没有阅读前31行就无法直接访问第32行。 所有语言和所有现代文件系统都是如此。 如此有效地,你只需阅读第32行,直到找到第32行为止。

  • 我想要一个规则来检查一些特定的字符串。假设我们不想在代码库中看到“Objects.nonNull”,而希望导入“nonNull”静态。 我怎样才能在ArchUnit中做到这一点?我知道它是为了更多的架构目标,但是我们已经在项目中使用了它,所以也许我们也可以将它用于较低级别的检查。 或者如何在其他框架中轻松完成?

  • 问题内容: 变量包含文件名。如何仅将文件名作为字符串获取? 我计划拆分字符串,但这不是最佳解决方案。 问题答案: 只需使用 File.getName() 使用 String方法 :

  • 问题内容: 我下载了文件作为ajax的响应。如何从内容处置中获取文件名和文件类型并显示其缩略图。我有许多搜索结果,但找不到正确的方法。 控制台输出: 问题答案: 这是我有时使用它的方式。我假设您将附件作为服务器响应提供。 我从REST服务中这样设置响应头 编辑:编辑答案以适合您的问题-使用单词代替

  • 问题内容: 我想使用Java创建和删除目录,但是它不起作用。 问题答案: Java无法删除其中包含数据的文件夹。您必须先删除所有文件,然后再删除文件夹。 使用类似: 然后,您应该可以使用 Untested 删除文件夹!

  • 我想用Java创建和删除一个目录,但是它不起作用。