моё решение:
public class Solution {
    public static void main(String[] args) throws IOException {
        try (Scanner scanner = new Scanner(System.in)) {
            Path filePath = Path.of(scanner.nextLine());
            Path fileNewPath = Path.of(scanner.nextLine());
            if(!Files.exists(filePath)){
                Files.createFile(filePath);
            }
            else if(Files.exists(filePath)&!Files.exists(fileNewPath)){
                Files.move(filePath,fileNewPath);
            }
            else if(Files.exists(filePath)&Files.exists(fileNewPath)){
                Files.delete(filePath);
            }
        }
    }
}
готовое:
public class Solution {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        Path filePath = Path.of(scanner.nextLine());
        Path fileNewPath = Path.of(scanner.nextLine());
        if (Files.notExists(filePath)) {
            Files.createFile(filePath);
        } else if (Files.notExists(fileNewPath)) {
            Files.move(filePath, fileNewPath);
        } else {
            Files.delete(filePath);
        }
    }
}
такой булин if(!Files.exists(filePath)) вместо if (Files.notExists(filePath)) занимает ли больше времени на обработку? по условию: Если же файл по первому пути существует, нужно переместить этот файл по второму пути, но только в том случае, если по второму пути файла нет. по готовому решению, проверка только на "если по второму пути файла нет" , откуда компилятор знает что по первому пути 100% есть файл, не совсем понятно. И в последнем тоже делаю лишние проверки, дело в принципе работы if else может быть?