В этой и предыдущей задачах пытался вынести чтение имени файлов с консоли в один метод. Часть кода приведена ниже. Но при повторном вызове метода getName() чтение с консоли не происходит, соответственно при создании объекта BufferWriter выскакивает ошибка. Пишет "java.io.IOException: Stream closed". Может кто подскажет в чем проблема. В дебагере вроде как при повторном вызове BufferedReader r ссылается на новый объект(что конечно ожидаемо), а вот почему вдруг этот новый поток оказывается закрытым? Что-то никак догнать не могу.
public static void main(String[] args) throws IOException{
        String fileToRead = getName();
        String fileToWrite = getName();
        BufferedReader reader = new BufferedReader(new FileReader(fileToRead));
        BufferedWriter writer = new BufferedWriter(new FileWriter(fileToWrite));
}

public static String getName(){
        String fileName = "";
        try {
            BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
            fileName = r.readLine();
            r.close();
        }
        catch (IOException e){e.printStackTrace();}
        return fileName;
    }