我有一个IO类,它使用ByteBuffer来缓冲对FileChannel的访问(因此它基本上接受构造函数中的FileChannel)。我想对它进行单元测试,所以如果我能得到一个支持bytearray的FileChannel以避免在测试期间创建和删除文件,那就太好了。
为了给你一个想法,如果我能得到像ByteArrayOutputStream.getChannel()这样的东西,那就太完美了。
答案 0 :(得分:11)
您可以使用Channels.newChannel(InputStream)
或Channels.newChannel(OutputStream)
,但这些会为您提供ReadableByteChannel
或WritableByteChannel
。他们不会给你一个FileChannel
,这是合理的,因为你没有文件 - 没有文件的FileChannel
没有任何意义。如果您将班级更改为接受任何ReadableByteChannel
或WritableByteChannel
,那应该没问题。