Java の FileChannel は、ReadableByteChannel と WritableByteChannel の両方を実装しているため、双方向になります。
質問:
FileChannel を作成するには、FileInputStream (読み取り用) と FileOutputStream (書き込み用) が必要です。両方のストリームをインスタンス化する必要があるため、双方向にするという目的に反していませんか?
フォローアップの質問:
多くの場所で、java.io はストリーム指向であり、java.nio はブロック指向であると述べている参照を見てきました (ここ)。では、なぜ InputStream と OutputStream を介してインスタンス化されるのでしょうか? ブロック指向の概念は、ストリームの単なる抽象化ですか?