Java虚拟机是否提供像PHP这样的自定义流处理程序


Does the Java VM provide custom stream handlers like PHP

PHP的流API提供了在zend引擎中创建自定义"流"的功能。这些流功能被设计成看起来和感觉上都像是原生的Unix-like文件描述符,其中可以像普通文件一样fopen、fwrite、fread、fseek等,但使用自定义处理程序,可以(例如)在fopen上打开数据库连接,在fread上执行SQL SELECT,在fwrite上执行SQL INSERT等,创建一个"高级"数据库API,其行为类似于普通文件。

这些流处理程序最好用C/C++编写,而PHP/Zend提供了一个用于创建流处理程序的原生API。

Java虚拟机是否为这种类型的数据处理提供了本机API?

听起来像是在描述java.nio,尤其是java.nio.channels包。例如,java.nio.channels.Channel Javadoc说(部分)

通道表示与能够执行一个或多个不同I/O操作(例如读取或写入)的实体(例如硬件设备、文件、网络套接字或程序组件)的开放连接。