我有一个文件夹,我从其他应用程序接收文件并存储在该文件夹中。文件格式为
"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/