Java 当包装并用作Techannel可写时,我是否必须刷新底层输出流?

Java 当包装并用作Techannel可写时,我是否必须刷新底层输出流?,java,io,nio,Java,Io,Nio,假设我有一个方法为给定的通道清空一些字节 static void doWithChannel(最终可由Techannel通道写入) 抛出IOException{ //写一些 } 那么任何带有OutputStream的调用方都可以这样调用,对吗 static void doWithStream(最终输出流) 抛出IOException{ doWithChannel(Channels.newChannel(stream)); //stream.flush();//这真的是必需的吗? //创建者或代

假设我有一个方法为给定的通道清空一些字节

static void doWithChannel(最终可由Techannel通道写入)
抛出IOException{
//写一些
}
那么任何带有
OutputStream
的调用方都可以这样调用,对吗

static void doWithStream(最终输出流)
抛出IOException{
doWithChannel(Channels.newChannel(stream));
//stream.flush();//这真的是必需的吗?
//创建者或代理是否应该在流上调用flush()?
}

我的问题是,任何实体(创建者或代理)是否应该调用流上的
flush()

未指定。不会痛的。如果该方法不执行任何操作,则与I/O相比,它是瞬时的。