Java:创建一个由bytearray支持的FileChannel

mar*_*ssi 5 java testing io file-io nio

我有一个IO类,它使用ByteBuffer缓冲对FileChannel的访问(因此它基本上接受构造函数中的FileChannel).我想对它进行单元测试,所以如果我能得到一个支持bytearray的FileChannel以避免在测试期间创建和删除文件,那就太好了.

为了给你一个想法,如果我能得到像ByteArrayOutputStream.getChannel()这样的东西,那将是完美的.

Jon*_*eet 11

你可以使用Channels.newChannel(InputStream)或者Channels.newChannel(OutputStream)那些会给你一个ReadableByteChannel或一个WritableByteChannel.他们不会给你一个FileChannel,这是有意义的,因为你没有文件 - FileChannel没有文件没有任何意义.如果你改变你的班级接受任何ReadableByteChannelWritableByteChannel,那应该没问题.