DataOutputStream可以包装FileOutputStream,但我不明白为什么在这里使用它。
FileOutputStream fos = new FileOutputStream(args[0]);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeByte('j');
最后一行与fos.write('j');
相同DataOutputStream在这种情况下添加了什么?那是为什么?
答案 0 :(得分:6)
Java中的Streams是根据Decorator design pattern。
定义的这意味着您可以使用另一个流组合特定功能(在特定流类中实现)。这允许您自定义流可以执行的操作。在您的具体示例中
FileOutputStream
是具体组件,它提供写入映射到文件的流的功能DataOutputStream
是一个具体装饰器,附加到另一个装饰器或组件,能够通过为您提供一种将基元写入流的方式来扩展功能,而无需关心装饰链中有什么