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

如何在读入文件时在文件名中使用通配符

翟博雅
2023-03-14

我正在开发一个应用程序,它将读取SystemOut.log文件并处理它们。有时归档文件的名称可能略有不同,例如SystemOut_10:20_09/07/2021-10:45_09/07/2021.log。它始终是SystemOut(这里有更多文本).log格式。

我稍微读了一下,偶然发现了通配符,并得出结论,如果我将SystemOut*.log作为文件名传递到我的应用程序中,它就可以工作了。但我错了。

fileName=prop.getProperty("fileName");
fileName=fileName+"*.Log";

我是在代码中犯了错误,还是只是误解了通配符是如何工作的?谢谢

共有1个答案

林祯
2023-03-14

尝试Apache commons-io(listFiles和iterateFiles方法)中的FileUtils:您需要的代码是

File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("*.Log");
File[] files = dir.listFiles(fileFilter);
for (int i = 0; i < files.length; i++) {
   System.out.println(files[i]);
}
 类似资料:
  • 问题内容: 我必须阅读tomcat日志文件,并在一段时间(例如:一个小时)后再次读取该文件(仅针对新添加的内容),因此我创建了RandomAccessFile来记录我完成的最后一个位置并使用BufferedReader.readLine()方法。 但是,我发现有时我无法读取文件的整行。 例如,tomcat正在尝试编写以下内容(仅作为示例): 192.168.0.0本地主机/index.html .

  • 问题内容: 我想知道是否以及如何在路径定义中使用通配符。我想更深入地查找一个文件夹并尝试使用*,但这不起作用。 我想访问随机文件夹中的文件。Folderstructure是这样的: 我试过的 先感谢您! 问题答案: 我认为不可能以这种方式使用通配符。我建议您对任务使用如下方式:

  • 我有一个zip文件(在一个jar文件中),我想读取init。我知道我可以使用getResourceAsStream(…)轻松读取txt文件,避免“URI不分层”错误。但现在确定我该如何为zip文件做到这一点。 下面是我的代码,但当我将代码导出到runnable jar并运行它时,它会抛出“URI非层次错误”。

  • 我想将我们构建的语言资源文件包含到安装程序中。语言资源文件都具有相同的名称,但位于不同的子文件夹中(每个区域设置一个),如下所示: 在我的部分,我想也许我可以做到这一点(注意星号的位置): 不幸的是,Inno Setup爆炸了,抱怨它找不到任何文件: 编译器错误! 第129行:找不到与"C:\Develop\HT\Installers\…\Source\Libr的\Location\bin\Rel

  • 问题内容: 我遇到一种情况,我想将我创建的所有日志写入文本文件。 我们正在使用java.util.logging.Logger API生成日志。 我试过了: 但是仍然只能在控制台上获取我的日志。 问题答案: 试试这个样本。这个对我有用。 在MyLogFile.log产生输出 编辑: 要删除控制台处理程序,请使用 因为ConsoleHandler已向父记录器注册,所有记录器都源自该记录器。

  • 在AWS CLI中使用从某个存储桶中选择文件子集时遇到问题。 向这样的路径添加*似乎不起作用