Идея такая,когда кидает исключение о том что клас не найден,виводим сообщение и пользуемся рекурсией
package com.javarush.test.level09.lesson11.bonus02;
import java.io.*;
/* Нужно добавить в программу новую функциональность
Задача: Программа вводит два имени файла. И копирует первый файл на место, заданное вторым именем.
Новая задача: Программа вводит два имени файла. И копирует первый файл на место, заданное вторым именем.
Если файла (который нужно копировать) с указанным именем не существует, то
программа должна вывести надпись «Файл не существует.» и еще раз прочитать имя файла с консоли, а уже потом считывать файл для записи.
*/
public class Solution
{
public static void main(String[] args) throws IOException
{
help();
}
private static void help()throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String sourceFileName = reader.readLine();
String destinationFileName = reader.readLine();
try {
FileInputStream fileInputStream = new FileInputStream(sourceFileName);
FileOutputStream fileOutputStream = new FileOutputStream(destinationFileName);
while (fileInputStream.available() > 0)
{
int data = fileInputStream.read();
fileOutputStream.write(data);
}
fileInputStream.close();
fileOutputStream.close();
}catch (FileNotFoundException e){
System.out.println("Файл не существует.");
help();
}
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
1) вы каждый раз вводите ДВА имени файла, а для задачи в случае отсутствия считываемого файла нужно еще раз запросить ОДНО имя файла. И только когда файл существует на диске — запросить ВТОРОЕ — куда копируем
2) у вас создается много потоков для чтения с консоли
Может его создавать за пределами рекурсивно заданной функции? И не забывать в конце закрывать.