При первом запуске я хочу скопировать данный File
в новое местоположение с новым именем файла.
Каждый последующий запуск должен перезаписывать один и тот же файл назначения, созданный во время первого запуска.
Во время первого запуска целевой файл не существует.Существует только каталог.
Я написал следующую программу:
package myTest;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Paths;
import org.apache.commons.io.FileUtils;
public class FileCopy {
public static void main(String[] args) {
TestFileCopy fileCopy = new TestFileCopy();
File sourceFile = new File("myFile.txt");
fileCopy.saveFile(sourceFile);
File newSourceFile = new File("myFile_Another.txt");
fileCopy.saveFile(newSourceFile);
}
}
class TestFileCopy {
private static final String DEST_FILE_PATH = "someDir/";
private static final String DEST_FILE_NAME = "myFileCopied.txt";
public void saveFile(File sourceFile) {
URL destFileUrl = getClass().getClassLoader().getResource(DEST_FILE_PATH
+ DEST_FILE_NAME);
try {
File destFile = Paths.get(destFileUrl.toURI()).toFile();
FileUtils.copyFile(sourceFile, destFile);
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
}
}
Однако, это выдает исключение нулевого указателя в следующей строке:
File destFile = Paths.get(destFileUrl.toURI()).toFile();
Что яотсутствует?Каталог someDir
находится прямо в корневом каталоге моего проекта в Eclipse.Оба исходных файла myFile.txt
и myFile_Another.txt
существуют непосредственно в корневом каталоге моего проекта в eclipse.