【发布时间】:2018-01-28 05:11:08
【问题描述】:
我是 Java NIO 的新手,而且我的母语不是英语。
当我阅读关于读写缓冲区的方法调用时,我总是感到困惑。这听起来与我相反。
例如,
fileChannel.read(buffer)
根据FileChanneljavadoc,意思是
读取一个字节序列从这个通道进入给定的缓冲区
我想知道为什么它不调用“write”。
在英语中,“write into”和“read from”听起来比“write from”和“read into”更自然。代码阅读中也是如此
fileChannel.write(buffer)
FileChannel 写入字节序列到给定的缓冲区
这清楚地说明了演员要做什么。
现在我需要阅读所有相反的东西才能把事情做好……
也许由于历史原因,他们在 IO 包中如何称呼它们?或者,也许我错过了一些明显的东西?希望我能得到你的建议,如何正确解释它们。
谢谢!
【问题讨论】:
-
当然,我认为
read()说“读取”,是否写入其他对象是一个实现细节。write()类似。参数写入了一些东西 -
我猜它可以被称为
readTo什么的。如果它被称为write,那真是令人困惑。那么ReadableByteChannel会被称为什么? -
它们听起来与我并不相反。真正的问题是为什么它们听起来与对你相反,只有你才能回答这个问题。可能是母语问题?
-
人们“读一本书”而不是“把一本书写在脑海中”的原因是一样的。
-
“人们阅读一本书”,我将其解释为“人们从一本书中阅读内容”。同理,“FileChannel 读取缓冲区”,我倾向于将其理解为“FileChannel 从缓冲区读取内容”,但这里的意思是“FileChannel 将内容读取到缓冲区”。