gpt4 book ai didi

java - 为什么 NIO FileChannels 从 InputStream/OutputStream 创建

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:04 27 4
gpt4 key购买 nike

Java 中的 FileChannel 实现了 ReadableByteChannel 和 WritableByteChannel,这使得它们是双向的。

问题:

要创建一个 FileChannel,我需要 FileInputStream(用于读取)和 FileOutputStream(用于写入)。这不会破坏使它们成为双向的目的,因为我需要实例化这两个流吗?

跟进问题:

我在很多地方看到过引用说明 java.io 是面向流的,而 java.nio 是面向 block 的(Here)。那为什么要通过InputStream和OutputStream来实例化呢?面向 block 的概念只是对 Streams 的抽象吗?

最佳答案

要创建一个 FileChannel,我需要 FileInputStream(用于读取)和 FileOutputStream(用于写入)。

你不知道。您可以使用 FileChannel.open(Path, OpenOption...)

Path path = ...;
FileChannel channel = FileChannel.open(path, options)
channel.read(byteBuffer);
channel.write(byteBuffer);

看看here获取后续问题的答案。

关于java - 为什么 NIO FileChannels 从 InputStream/OutputStream 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18706758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com