Java 没有IO流,NIO通道就不存在?

Java 没有IO流,NIO通道就不存在?,java,nio,Java,Nio,在H.Shildt的书中,我读到: 没有上下文,通道就不存在。它们的上下文是java.io中的一系列I/O流类 在学习NIO时,我也看到过这种说法,但很少见到 无论如何,下面的代码在不创建I/O流的情况下工作。为什么?哪种变体是正确的-有或没有IO流 try (FileChannel channel = (FileChannel) Files.newByteChannel(Paths.get("test.txt")) ) { // some cod

在H.Shildt的书中,我读到:

没有上下文,通道就不存在。它们的上下文是java.io中的一系列I/O流类

在学习NIO时,我也看到过这种说法,但很少见到

无论如何,下面的代码在不创建I/O流的情况下工作。为什么?哪种变体是正确的-有或没有IO流

try (FileChannel channel = (FileChannel) 
    Files.newByteChannel(Paths.get("test.txt")) ) {
    
    // some code

} catch(...)

我不认为这句话意味着一个存在而另一个不存在有具体的技术要求

在我看来,这种情况下的“上下文”指的是“在试图理解这个主题时需要了解的情况”


换句话说:I/O流类的原始方式是在Java中进行I/O。NIO是它之上的一种进化。NIO不一定需要基本的流类,但理解这些原始概念将有助于理解NIO。

通道类定义支持java.io包的流类与java.NIO包的通道类互操作的静态方法

除了互操作性的原因之外,如果直接使用java.nioapi、jdk7或更高版本,则不需要这样做

详情如下:

因此,这里的引用可能引用了Java util类通道,而不是一般的w.r.t到Java.nio