Могу ли я записать любой InputStream в FileChannel?
Я использую java.nio.channels.FileChannel, чтобы открыть файл и заблокировать его, а затем записать InputStream в выходной файл. InputStream может быть открыт другим файлом, URL-адресом, сокетом или чем-то еще. Я пишу следующие коды:
FileOutputStream outputStream = new FileOutputStream(outputFile);
FileChannel outputChannel = outputStream.getChannel();
FileLock lock = outputChannel.lock();
try {
outputChannel.transferFrom(???);
} finally {
lock.release();
outputChannel.close();
outputStream.close();
}
Однако первый аргумент outputChannel.transferFrom(...) запрашивает объект ReadableByteChannel. Поскольку я использую InputStream в качестве входных данных, у него нет метода inputStream.getChannel() для создания требуемого канала.
Есть ли способ получить ReadableByteChannel из InputStream?