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

java中基于DDMMYYYY的输入文件动态读取,java,regex,Java,Regex,我有一个文件夹,从其他应用程序接收文件并存储在该文件夹中。文件格式为 “ABC_DIFL_MMDDYYYYmillisecs.log” 我不想手动传递文件名,我想根据今天的日期动态读取文件。有哪些可能的方法可以做到这一点 TIA您可以使用该类获取日期对象并对其进行格式化,以便将其用作文件名的一部分 DateFormat df = new SimpleDateFormat("MMddyyyy"); String filename = "ABC_DIFL_" + df.format(new Date

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

“ABC_DIFL_MMDDYYYYmillisecs.log”

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

TIA

您可以使用该类获取日期对象并对其进行格式化,以便将其用作文件名的一部分

DateFormat df = new SimpleDateFormat("MMddyyyy");
String filename = "ABC_DIFL_" + df.format(new Date()) + ".log";
您可以阅读SimpleDateFormat所使用的格式

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

您需要做的是获取目录中的文件列表并测试它们,以找到以todays 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
}
您可以使用该类获取日期对象并对其进行格式化,以便将其用作文件名的一部分

DateFormat df = new SimpleDateFormat("MMddyyyy");
String filename = "ABC_DIFL_" + df.format(new Date()) + ".log";
您可以阅读SimpleDateFormat所使用的格式

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

您需要做的是获取目录中的文件列表并测试它们,以找到以todays 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
}
您可以使用该类获取日期对象并对其进行格式化,以便将其用作文件名的一部分

DateFormat df = new SimpleDateFormat("MMddyyyy");
String filename = "ABC_DIFL_" + df.format(new Date()) + ".log";
您可以阅读SimpleDateFormat所使用的格式

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

您需要做的是获取目录中的文件列表并测试它们,以找到以todays 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
}
您可以使用该类获取日期对象并对其进行格式化,以便将其用作文件名的一部分

DateFormat df = new SimpleDateFormat("MMddyyyy");
String filename = "ABC_DIFL_" + df.format(new Date()) + ".log";
您可以阅读SimpleDateFormat所使用的格式

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

您需要做的是获取目录中的文件列表并测试它们,以找到以todays 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
}


您需要
dd
在那里
DD
给出一年中的日期。另外,还要附加扩展名
.log
。哦,对不起,谢谢你的回复,但是日期也有毫秒。我正在编辑我的问题。这就是我困惑的地方。。!很抱歉在您回复后打扰您。是yyyy而不是yyyy。毫秒是实际固定的还是一天中的任意点?它是任意的。不固定,我想我们需要在这里使用正则表达式。我不擅长正则表达式。除regex之外的任何线索,或者我是否应该继续使用regex???您需要
dd
在那里
DD
给出一年中的日期。另外,还要附加扩展名
.log
。哦,对不起,谢谢你的回复,但是日期也有毫秒。我正在编辑我的问题。这就是我困惑的地方。。!很抱歉在您回复后打扰您。是yyyy而不是yyyy。毫秒是实际固定的还是一天中的任意点?它是任意的。不固定,我想我们需要在这里使用正则表达式。我不擅长正则表达式。除regex之外的任何线索,或者我是否应该继续使用regex???您需要
dd
在那里
DD
给出一年中的日期。另外,还要附加扩展名
.log
。哦,对不起,谢谢你的回复,但是日期也有毫秒。我正在编辑我的问题。这就是我困惑的地方。。!很抱歉在您回复后打扰您。是yyyy而不是yyyy。毫秒是实际固定的还是一天中的任意点?它是任意的。不固定,我想我们需要在这里使用正则表达式。我不擅长正则表达式。除regex之外的任何线索,或者我是否应该继续使用regex???您需要
dd
在那里
DD
给出一年中的日期。另外,还要附加扩展名
.log
。哦,对不起,谢谢你的回复,但是日期也有毫秒。我正在编辑我的问题。这就是我困惑的地方。。!很抱歉在您回复后打扰您。是yyyy而不是yyyy。毫秒是实际固定的还是一天中的任意点?它是任意的。不固定,我想我们需要在这里使用正则表达式。我不擅长正则表达式。除了regex还有其他线索吗?我是否应该继续使用regex???