Я пишу программу на Java, которая будет анализировать файлы из папки и затем возвращать последний файл, соответствующий строке.
Например, в папке с 4 файлами (4-й файл с последним измененным файлом). свидание). Сейчас я пишу программу, которая будет возвращать последний файл, содержащий строку, а не только последний файл в папке. На рисунке ниже я ожидаю, что код Java вернет файл 3, а не файл 4.
Вот код, который я пытаюсь выполнить и я обнуляю Я сейчас отлаживаю код, который не уверен, почему он просто не вводится, пока l oop.
Код ниже работает.
public class LatestFileMatchingString {
public static void main(String[] args) {
File directory = new File("testDataFolder");
File[] files = directory.listFiles(File::isFile);
long lastModifiedTime = Long.MIN_VALUE;
File chosenFile = null;
if (files != null)
{
for (File file : files)
{
if (file.lastModified() > lastModifiedTime)
{
try {
int count = 0;
FileReader fileIn = new FileReader(file);
BufferedReader reader = new BufferedReader(fileIn);
String line;
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String newLine = scanner.nextLine();
System.out.println(newLine);
if((newLine.contains("JAVASTRING"))) {
chosenFile = file;
lastModifiedTime = file.lastModified();
System.out.println("This file has string " + file);
}
}
}catch (IOException e){
System.out.println(e);
}
}
}
}
System.out.println("The latest File with matching string is : " + chosenFile);
}
}