在h。我读过希尔特的书:没有上下文,通道就不存在。它们的上下文是java.io中的一系列i/o流类。我在学习nio时也看到过这种说法,但很少见到。无论如何,下面的代码在不创建i/o流的情况下工作。为什么?什么变体是正确的-有或没有io流?
try (FileChannel channel = (FileChannel) Files.newByteChannel(Paths.get("test.txt")) ) { // some code } catch(...)
bakd9h0s1#
我不认为这句话意味着有一个具体的技术要求存在没有其他。在我看来,这种情况下的“语境”指的是“在试图理解这个主题时需要了解的情况”。换言之:i/o流类的原始方式是在java中做i/o的。nio是它之上的一个进化。nio不一定需要基本的流类,但是理解这些原始概念将有助于理解nio。
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。
2条答案
按热度按时间bakd9h0s1#
我不认为这句话意味着有一个具体的技术要求存在没有其他。
在我看来,这种情况下的“语境”指的是“在试图理解这个主题时需要了解的情况”。
换言之:i/o流类的原始方式是在java中做i/o的。nio是它之上的一个进化。nio不一定需要基本的流类,但是理解这些原始概念将有助于理解nio。
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。