接口寻找Appendable或OutputStream之类的东西

时间:2009-07-22 14:48:02

标签: java interface io

嗯。我正在尝试编写一个接受字节的类,并希望为此目的实现一个众所周知的接口。

java.io.OutputStream是一个抽象类,而不是一个接口(为什么???),这让我感到紧张,因为我不知道扩展它的后果是什么。如果没有后果,那应该是一个界面。否则,它会让我认为它定义了equals()hashCode()或者可能是Serializable相关行为之一,并且在尝试扩展它之前我应该​​知道一些事情。无论如何,如果我扩展它,那意味着我已经用完了我的1个超类,并且无法扩展对我的应用程序更重要的其他东西。

java.lang.Appendable是一个可以实现我想要的界面,但是对于字符,而不是字节。

java.nio.WritableByteChannel是我想要的,我可能会使用它,但它只接受ByteBuffers作为输入,而不是byte []数组。

还有其他建议吗? (p.s.是“输入 - 输出”I / O问题的最佳标记?)

3 个答案:

答案 0 :(得分:1)

java.io.DataOutput可能适合你,虽然它有比你要求的更多的方法。

答案 1 :(得分:1)

为什么要使用众所周知的界面?

为您的目的创建自己的界面没有任何害处。

此外,我不会致电AppendableWritableByteChannel'众所周知'。

答案 2 :(得分:1)

扩展java.io.OutputStream应该没有问题。它被设计用作基类。如果您担心,请查看OutputStream的源代码。

我唯一的问题是OutputStream API是否符合您的应用程序要求,或者不同的API是否更合适。如果您设计的自己的界面更符合您的应用程序要求,那么没有人会抱怨。

相关问题