java - java中基于DDMMYYYY动态读取输入文件

标签 java regex

我有一个文件夹,我从其他应用程序接收文件并存储在该文件夹中。文件格式为

"ABC_DIFL_MMDDYYYYmillisecs.log"

我不想手动传递文件名,我想根据今天的日期动态读取文件。有哪些可能的方法可以做到这一点???

TIA

最佳答案

您可以使用DateFormat类来获取 Date 对象并格式化它,以便它可以用作文件名的一部分。

DateFormat df = new SimpleDateFormat("MMddyyyy");
String filename = "ABC_DIFL_" + df.format(new Date()) + ".log";

您可以在 the API page 上阅读有关 SimpleDateFormat 的格式.

您还面临更棘手的问题,即查找具有毫秒后缀的文件。这可以从具有毫秒精度的 Date 对象创建,但是您如何知道哪个毫秒是正确的?

您需要做的是获取目录中的文件列表并测试它们以找到以今天日期开头的文件。这可以按如下方式完成:

public File findTodaysFirstFile(File directory) {
    DateFormat df = new SimpleDateFormat("MMddyyyy");
    String prefix = "ABC_DIFL_" + df.format(new Date());

    for (File current : directory.listFiles()) {
        if (current.getName().startsWith(prefix)) {
            return current;
        }
    }
    // handle failure here, throw an exception or return null as you prefer
}

关于java - java中基于DDMMYYYY动态读取输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28320069/

相关文章:

java - 无法从 Runnable.run 方法更新 swing 组件

c# - 在 AutoFixture ISpecimenBuilder 中使用 RegEx 时,为什么我总是得到相同的值?

javascript - 用户注册系统需要正则表达式帮助吗?

java - 如何创建类错误?

java - 在 Java 中提供特征的库或语言扩展?

java - 使用onClick接口(interface)时RecyclerView适配器导致内存泄漏

java - Controller 可以指定使用哪些拦截器

regex - aix 上的 sed 正则表达式问题

javascript - 如何替换 JavaScript 字符串中除字母和数字之外的所有内容(空格/符号)?

javascript - 为什么 JavaScript RegExp/^\w+$/match 未定义?