JavaNIO:为什么方法名为;改为&引用;写下;听起来正好相反?

JavaNIO:为什么方法名为;改为&引用;写下;听起来正好相反?,java,nio,naming,Java,Nio,Naming,我是Java NIO新手,不是英语母语 当我阅读关于读写缓冲区的方法调用时,我总是感到困惑。对我来说,这听起来正好相反 比如说, fileChannel.read(buffer) 根据javadoc,它意味着 将字节序列从此通道读入给定的缓冲区 我想知道为什么它不叫“写” 在英语中,“write-to”和“read-from”听起来比“write-from”和“read-to”更自然。在代码阅读方面也是如此 fileChannel.write(buffer) FileChannel将字节序列

我是Java NIO新手,不是英语母语

当我阅读关于读写缓冲区的方法调用时,我总是感到困惑。对我来说,这听起来正好相反

比如说,

fileChannel.read(buffer)
根据javadoc,它意味着

将字节序列从此通道读入给定的缓冲区

我想知道为什么它不叫“写”

在英语中,“write-to”和“read-from”听起来比“write-from”和“read-to”更自然。在代码阅读方面也是如此

fileChannel.write(buffer)
FileChannel将字节序列写入给定的缓冲区

这清楚地说明了演员将要做什么

现在我需要阅读所有相反的东西,以便把事情做好

也许他们这样称呼他们是因为历史原因,他们在IO包中如何称呼他们?或者我错过了一些明显的东西?希望你能给我一些正确解释的建议


谢谢

当你有
object.verb(…)
时,动词通常是在对象上执行的,因此如果你想阅读
文件通道
,你应该有
文件通道。read(…)

当你有
object.verb(…)
时,动词通常是在对象上执行的,因此,如果您想读取
文件通道
,您应该拥有
文件通道。读取(…)

在任何数据传输中,总是有一个用于读取数据,还有一个目标用于写入数据。也许是因为文件比内存缓冲区内容更持久,所以通常会根据文件的角色而不是缓冲区的来命名涉及文件和内存缓冲区的传输操作。因此,当文件是源而缓冲区是目标时,它是一个“读取”,当文件是目标而缓冲区是源时,它是一个“写入”

在任何数据传输中,总是有一个读取数据和一个目标写入数据。也许是因为文件比内存缓冲区内容更持久,所以通常会根据文件的角色而不是缓冲区的来命名涉及文件和内存缓冲区的传输操作。因此,当文件是源而缓冲区是目标时,它是一个“读取”,当文件是目标而缓冲区是源时,它是一个“写入”

当然,我认为
read()
说的是“readfrom”,这是否写入其他对象是一个实现细节。类似于
write()
。参数中写入了一些内容。我猜它可能被称为
readTo
或其他内容。如果它被称为
write
,它将非常混乱。那么Techannel的ReadableByteChannel将被称为什么呢?它们听起来并不与我相反。真正的问题是,为什么它们听起来与你相反,只有你才能回答。可能是母语问题吗?同样的原因是人们“读一本书”而不是“写一本书到他们的头上”。“人们读一本书”,我将其解释为“人们读一本书的内容”。同样的原因,“FileChannel read buffer”,我倾向于将其解释为“FileChannel从缓冲区读取内容”,但在这里它的意思是“FileChannel将内容读取到缓冲区”。当然,我认为
read()
表示“read from”,这是否写入其他对象是一个实现细节。类似于
write()
。参数中写入了一些内容。我猜它可能被称为
readTo
或其他内容。如果它被称为
write
,它将非常混乱。那么Techannel的ReadableByteChannel将被称为什么呢?它们听起来并不与我相反。真正的问题是,为什么它们听起来与你相反,只有你才能回答。可能是母语问题吗?同样的原因是人们“读一本书”而不是“写一本书到他们的头上”。“人们读一本书”,我将其解释为“人们读一本书的内容”。同样的原因,“FileChannel读取缓冲区”,我倾向于将其解释为“FileChannel从缓冲区读取内容”,但这里的意思是“FileChannel将内容读取到缓冲区”。谢谢@Kevin。你的解释很有说服力,特别是关于谁更重要,谁更强调数据传输的作用。谢谢@Kevin。你的解释很有说服力,特别是关于谁更重要,谁更强调数据传输的作用。