背景故事:
XML 有这些 Source 和 Result 接口(interface)。 这些是 Java 中不同 XML 技术之间的适配器。 这些类的实例表示 DOM、SAX、JAXB、XML 流、XML 事件 (甚至更多?)。
问题:
那么,有什么东西可以与普通的旧字符串相媲美吗?一些概括 介于以下之间?
[输入|输出]流
读取器|写入器
字符串缓冲区
StringBuilder
CharBuffer
(来自 NIO)文件
(或者我们当中的 JDK7 粉丝的路径
)- (最后)
CharSequence
也许有一些通用的 API(Apache commons 之类的东西...?)提供了这样的功能?
澄清示例:
经典方法的用法:
接口(interface)需要能够从所有可能的源(结果)读取(写入)字符:
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),现在可以使用每种方法进行读/写:
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
+ ...
如果不存在这样的功能,我应该编写自己的迷你 API 吗? (对于更大的 API,我目前正在参与)
这是什么意思?
最佳答案
有this (是的 - Apache Commons)。
关于Java:流、读取器、字符缓冲区、字符串生成器等之间可能的泛化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567808/