我可以将任何InputStream写入FileChannel吗?我使用java.nio.channels.FileChannel打开文件并将其锁定,然后将InputStream写入输出文件。 InputStream可能被另一个文件,URL,套接字或其他东西打开。我已经写了下面的代码:使用FileChannel写入任何InputStream?
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()方法来创建所需的通道。
有什么办法从InputStream获得ReadableByteChannel?