nio通道?

rmbxnbpk  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(363)

在h。我读过希尔特的书:
没有上下文,通道就不存在。它们的上下文是java.io中的一系列i/o流类。
我在学习nio时也看到过这种说法,但很少见到。
无论如何,下面的代码在不创建i/o流的情况下工作。为什么?什么变体是正确的-有或没有io流?

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

    // some code

} catch(...)
bakd9h0s

bakd9h0s1#

我不认为这句话意味着有一个具体的技术要求存在没有其他。
在我看来,这种情况下的“语境”指的是“在试图理解这个主题时需要了解的情况”。
换言之:i/o流类的原始方式是在java中做i/o的。nio是它之上的一个进化。nio不一定需要基本的流类,但是理解这些原始概念将有助于理解nio。

xriantvc

xriantvc2#

channels类定义支持java.io包的流类与java.nio包的通道类的互操作的静态方法。
除了互操作性的原因之外,如果直接使用java.nioapi、jdk7或更高版本的特定应用程序,则不需要这样做。
更多信息:https://docs.oracle.com/javase/7/docs/api/java/nio/channels/channels.html
所以这里的引用可能是针对javautil类通道的,而不是一般的w.r.t到java.nio。

相关问题