2011-07-08 53 views
6

我可以将任何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?

回答

5

可以使用的ReadableByteChannel readableChannel = Channels.newChannel(myinputstream)。

相关问题