在 Java 中,I/O 流InputStream是OutputStream与外部世界合作的概念,无论是磁盘上的文件、监视器屏幕、网络连接还是打印机。也就是说,超出应用程序的所有内容。
如果我理解正确,那么计算机中的一切最终都是字节流,而 Streams 统一了这一切。只是对于每个外围设备,我都编写了自己的实现read()和write().
有一些特定的类——例如FileOutputStream,它专门用于磁盘上的文件。其中, write()-method 中使用了 native 方法,该方法执行将数据写入文件的工作。
但是,例如,我想通过 ftp 处理文件。或者我想通过打印机打印文件。有了这个概念,我必须通过相同的OutputStream. 我应该如何编写一个类的实现OutputStream,特别是一个方法write(),将字节流发送到打印机?或者通过 ftp 连接到另一个文件?
OutputStream,以及作为InputStream抽象类,也就是说,它们不包含一个或多个方法的实现。具体来说,该类
OutputStream缺少该方法的实现:但是,文档说
即需要实现一个字节和一个字节数组的记录。
因此,您需要继承抽象类
OutputStream并在方法中实现字节到设备的传输write。这不一定是native方法,您的类可以包含与设备交互的接口的高级定义,例如,通过实现与设备的连接并组织字节传输的库。使用以下语言将字节直接写入打印机(在“/dev/usb/lp0”端口上)的示例
Java:但是,我不确定 Java 是否有足够的权限,所以我给出了等价于
C: