首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FileChannel写InputStream吗?

用FileChannel写InputStream吗?
EN

Stack Overflow用户
提问于 2011-07-08 10:53:04
回答 2查看 16.3K关注 0票数 13

我可以在FileChannel中写入任何InputStream吗?

我使用java.nio.channels.FileChannel打开一个文件并将其锁定,然后向输出文件写入一个InputStream。InputStream可以由另一个文件、URL、套接字或任何东西打开。我写了以下代码:

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-08 10:59:24

代码语言:javascript
复制
Channels.newChannel(InputStream in)

http://docs.oracle.com/javase/7/docs/api/java/nio/channels/Channels.html

票数 28
EN

Stack Overflow用户

发布于 2011-07-08 11:04:13

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

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6619516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档