在 Java IO 中,OutputStream
可以使用 flush()
方法来确保立即发送数据。
SocketChannel
在Java NIO中有没有对应的函数?据我所知,FileChannel
有一个force()
方法来刷新数据。
可能是一个非常幼稚的问题......
最佳答案
OutputStream.flush()
除了刷新任何 BufferedOutputStream
或 ObjectOutputStream
或 PrintStream
的缓冲区外什么都不做> 在堆栈中。
具体来说,它不会执行与 FileChannel.force()
或 getFD().sync()
对应的任何操作。它只是将流缓冲区从 JVM 刷新到(在本例中)内核中的套接字发送缓冲区。
SocketChannel.write()
根本不涉及任何此类缓冲:它直接进入内核中的套接字发送缓冲区。所以没有什么flush,也就没有flush操作。
关于java - 如何刷新 Java NIO 中的 SocketChannel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440514/