Java中的FileChannel实现了ReadableByteChannel和WritableByteChannel接口,使它们成为双向的。
问题:
要创建FileChannel,我需要FileInputStream(用于读取)和FileOutputStream(用于写入)。这不是违背了使它们双向的目的吗?因为我需要实例化两个流?
跟进问题:
我在许多地方看到引用,称java.io是面向流的,而java.nio是面向块的(这里)。那么为什么它们通过InputStream和OutputStream进行实例化?块导向的概念只是对流的抽象吗?
InputStream
和OutputStream
获取它们,一些流实现将提供专门用于块导向 IO 的优化通道,而一些流实现将只使用在流之上构建的简单默认值。 - Louis Wasserman