Обновления JAVA 9
Начиная с Java 9, Reader предоставляет метод с именем TransferTo со следующей подписью:
public long transferTo(Writer out) throws IOException
Как указано в документации, TransferTo будет:
Считывает все символы из этого устройства чтения и записывает символы для данного устройства записи в порядке их чтения.По возвращении этот читатель будет в конце потока.Этот метод не закрывает ни читателя, ни писателя.Этот метод может блокировать бесконечно чтение из читателя или запись в писатель.Поведение для случая, когда считыватель и / или записывающее устройство асинхронно закрыты или поток, прерванный во время передачи, сильно зависит от читателя и записывающего устройства и поэтому не указывается.
Если при чтении возникает ошибка ввода-выводаот читателя или пишущего писателю, он может сделать это после того, как некоторые символы были прочитаны или написаны.Следовательно, считыватель может не находиться в конце потока, и один или оба потока могут находиться в несогласованном состоянии.Настоятельно рекомендуется, чтобы оба потока были незамедлительно закрыты при возникновении ошибки ввода-вывода.
Поэтому, чтобы записать содержимое Java Reader на Writer, вы можете написать:
reader.transferTo(writer);