javadoc говорит:
public FileWriter (String fileName) генерирует IOException
Создает объект FileWriter с учетом имени файла.
Таким образом: при использовании этого интерфейса вы не можете передать URL, или URI, или что-либо, что легально может начинаться с file://
.
Другими словами: это работает как задумано.Этот конструктор ожидает имя файла, простое и понятное.
Если у вас есть строка, похожая на URL, попробуйте что-то вроде этого:
URL fileURL = new URL("file://C:/whatever.txt");
InputStream is = fileURL.openStream();
Или просто создайте объект File из того UIR, который вы получили.Затем передать этот файловый объект немного отличному конструктору FileWriter.