1. Почему не валидируется?
2. Не могу понять, как работать с этим методом Files.copy(inputStream,temp); ?
package com.javarush.task.task31.task3112;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
/*
Загрузчик файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Path passwords = downloadFile("https://javarush.ru/testdata/secretPasswords.txt", Paths.get("C:\\Users\\Вадим\\Music\\Test\\Inside\\Parts"));
for (String line : Files.readAllLines(passwords)) {
System.out.println(line);
}
}
public static Path downloadFile(String urlString, Path downloadDirectory) throws IOException {
// implement this method
URL url = new URL(urlString);
InputStream inputStream = url.openStream();
Path temp = Files.createTempFile(Path.of("C:\\Users\\Вадим\\Music\\Test\\Inside"),null, urlString.substring(urlString.lastIndexOf('.')));
Path sourсeDirectory = Path.of("C:\\Users\\Вадим\\Music\\Test\\Inside" + "\\" + temp.toString().substring(temp.toString().lastIndexOf('\\')));
Path fileDownload = Path.of(downloadDirectory + "\\" + temp.toString().substring(temp.toString().lastIndexOf('\\')));
Files.copy(inputStream,temp);
inputStream.close();
Files.move(sourсeDirectory,fileDownload);
Files.move(temp, temp.resolveSibling(urlString.substring(urlString.lastIndexOf('/') + 1, urlString.lastIndexOf('.'))));
return downloadDirectory;
}
}
Ну правильно, у тебя temp и sourсeDirectory - один и тот же файл. Ты в строке 34 переносишь файл, а потом в строке опять пытаешься этот файл перенести, а его уже там нет.Я в строке 34 переношу файл, а потом в строке 35 пытаюсь изменить имя файла на оригинальный, видимо как-то неудачно