XML有这些Source和Result接口。 这些是Java中不同XML技术之间的适配器。 这些类的实例表示DOM,SAX,JAXB,XML流,XML事件 (还有更多?)。
那么,对于普通的旧字符串,是否有类似的东西?一些概括 以下之间?
[Input|Output]Stream
Reader|Writer
StringBuffer
StringBuilder
CharBuffer
(来自NIO)File
(或我们之间的JDK7粉丝Path
) CharSequence
也许有一些常见的API(Apache公共东西......?)提供了这样的功能?
接口需要能够从(到)所有可能的源(结果)读取(写入)字符:
interface SomeInterface {
readFrom(CharacterSequence source);
readFrom(InputStream source);
readFrom(Reader source);
readFrom(File source);
// ...
writeTo(CharacterSequence result);
writeTo(OutputStream result);
writeTo(Writer result);
writeTo(File result);
// ...
}
使用一些虚构的CharacterSource
和CharacterResult
接口,现在可以使用一种方法进行读/写:
interface SomeInterface {
readFrom(CharacterSource source);
writeTo(CharacterResult result);
}
interface CharacterSource
+ class CharBufferSource
+ class InputStreamSource
+ class ReaderSource
+ class FileSource
+ ...
interface CharacterResult
+ class CharBufferResult
+ class OutputStreamResult
+ class WriterResult
+ class FileResult
+ ...
如果不存在此类功能,我应该编写自己的mini-API吗? (对于更大的API,我目前参与其中)
这个是什么?
答案 0 :(得分:1)
有this(是的 - Apache Commons)。
答案 1 :(得分:0)
您可以使用Reader
和Writer
来概括界面。如果您希望阅读/写入File
,可以使用FileReader
/ FileWriter
。同样,您可以使用其他Reader
/ Writer
实现来读取/写入String
(即CharSequence
)或流。
答案 2 :(得分:0)
Google's common-io 的 InputSupplier
和 OutputSupplier
与我提议的相似之处接口?
(一种概括所有可能的输入和输出流的方法)
奇怪的是,Google界面的类型参数没有任何约束(我在考虑Closable
或其他东西)。