【问题标题】:Java: create a bytearray-backed FileChannelJava:创建一个字节数组支持的 FileChannel
【发布时间】:2011-12-17 22:37:27
【问题描述】:
我有一个 IO 类,它使用 ByteBuffer 来缓冲对 FileChannel 的访问(因此它基本上在构造函数中接受 FileChannel)。我想对它进行单元测试,所以如果我能获得一个支持字节数组的 FileChannel 以避免在测试期间创建和删除文件,那就太好了。
为了让你有个想法,如果我能得到类似 ByteArrayOutputStream.getChannel() 的东西就完美了。
【问题讨论】:
标签:
java
testing
file-io
io
nio
【解决方案1】:
您可以使用Channels.newChannel(InputStream) 或Channels.newChannel(OutputStream),但它们会为您提供ReadableByteChannel 或WritableByteChannel。他们不会给你FileChannel,考虑到你没有文件,这是有道理的——没有文件的FileChannel 没有任何意义。如果您更改班级以接受任何ReadableByteChannel 或WritableByteChannel,那应该没问题。