Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中获取基于时间戳的最新文件_Java - Fatal编程技术网

在Java中获取基于时间戳的最新文件

在Java中获取基于时间戳的最新文件,java,Java,我有一个目录,其中包含以下格式的文件。这些文件位于名为/incoming/external/data ABC_20100806.csv ABC_20100807.csv ABC_20100808.csv ABC_20100809.csv ABC_20100810.csv ABC_20100811.csv ABC_20100812.csv 正如您所看到的,文件名包含一个时间戳。i、 e.[RANGE]\uyyyymmdd].csv 我需要做的是使用文件名上的时间戳(而不是系统时间戳)找出这些文件

我有一个目录,其中包含以下格式的文件。这些文件位于名为
/incoming/external/data

ABC_20100806.csv
ABC_20100807.csv
ABC_20100808.csv
ABC_20100809.csv
ABC_20100810.csv
ABC_20100811.csv
ABC_20100812.csv
正如您所看到的,文件名包含一个时间戳。i、 e.
[RANGE]\uyyyymmdd].csv


我需要做的是使用文件名上的时间戳(而不是系统时间戳)找出这些文件中哪一个具有最新日期,并将文件名存储在一个变量中,然后将其移动到另一个目录,并将其余文件移动到java中的另一个目录。

您可以使用以下命令将文件名读取到数组中:

File directory = new File("/incoming/external/data");
String[] fileNames = directory.list(new FilenameFilter() {
    public boolean accept(File dir, String fileName) {
         return fileName.endsWith(".csv");
    }
});
如果您的文件始终具有相同的前缀,则只需从中对数组进行排序:

Arrays.sort(fileNames);
删除每个文件名的前缀和后缀以提取日期的一种方法是:

int underline = fileName.indexOf("_");
int dot = fileName.indexOf(".");
String datePart = fileName.substring(underline, dot);
然后,您可以将该字符串添加到数组中并(按词汇)排序

如果出于其他原因,您希望将日期转换为Java日期,您可以使用:

SimpleDateFormat dt = new SimpleDateFormat("yyyymmdd");
Date date = dt.parse(datepart); 

您将有一个Java日期,还可以在数组或列表中排序。

您可以使用以下命令将文件名读入数组:

File directory = new File("/incoming/external/data");
String[] fileNames = directory.list(new FilenameFilter() {
    public boolean accept(File dir, String fileName) {
         return fileName.endsWith(".csv");
    }
});
如果您的文件始终具有相同的前缀,则只需从中对数组进行排序:

Arrays.sort(fileNames);
删除每个文件名的前缀和后缀以提取日期的一种方法是:

int underline = fileName.indexOf("_");
int dot = fileName.indexOf(".");
String datePart = fileName.substring(underline, dot);
然后,您可以将该字符串添加到数组中并(按词汇)排序

如果出于其他原因,您希望将日期转换为Java日期,您可以使用:

SimpleDateFormat dt = new SimpleDateFormat("yyyymmdd");
Date date = dt.parse(datepart); 

您将有一个Java日期,还可以在数组或列表中排序。

您可以使用以下命令将文件名读入数组:

File directory = new File("/incoming/external/data");
String[] fileNames = directory.list(new FilenameFilter() {
    public boolean accept(File dir, String fileName) {
         return fileName.endsWith(".csv");
    }
});
如果您的文件始终具有相同的前缀,则只需从中对数组进行排序:

Arrays.sort(fileNames);
删除每个文件名的前缀和后缀以提取日期的一种方法是:

int underline = fileName.indexOf("_");
int dot = fileName.indexOf(".");
String datePart = fileName.substring(underline, dot);
然后,您可以将该字符串添加到数组中并(按词汇)排序

如果出于其他原因,您希望将日期转换为Java日期,您可以使用:

SimpleDateFormat dt = new SimpleDateFormat("yyyymmdd");
Date date = dt.parse(datepart); 

您将有一个Java日期,还可以在数组或列表中排序。

您可以使用以下命令将文件名读入数组:

File directory = new File("/incoming/external/data");
String[] fileNames = directory.list(new FilenameFilter() {
    public boolean accept(File dir, String fileName) {
         return fileName.endsWith(".csv");
    }
});
如果您的文件始终具有相同的前缀,则只需从中对数组进行排序:

Arrays.sort(fileNames);
删除每个文件名的前缀和后缀以提取日期的一种方法是:

int underline = fileName.indexOf("_");
int dot = fileName.indexOf(".");
String datePart = fileName.substring(underline, dot);
然后,您可以将该字符串添加到数组中并(按词汇)排序

如果出于其他原因,您希望将日期转换为Java日期,您可以使用:

SimpleDateFormat dt = new SimpleDateFormat("yyyymmdd");
Date date = dt.parse(datepart); 

您将有一个Java日期,您还可以在数组或列表中排序。

看起来您应该能够按词汇对这些名称进行排序。您遇到了什么问题?看起来您应该能够按词汇对这些名称进行排序。您遇到了什么问题?看起来您应该能够按词汇对这些名称进行排序。您遇到了什么问题?看起来您应该能够按词汇对这些名称进行排序。您有什么问题?