作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想公开一个接受 CharSink 并写入它的 API,而不是接受一个 Appendable,按照以下行:
public class Foo {
public void writeTo(CharSink sink) { .. }
}
这将使 API 的最常见使用变得非常方便,而无需打开和关闭流的常规恶作剧。
不过,有时我想接收字符序列中的输出:
new Foo().writeTo(...);
CharSequence s = ...; // s now contains the chars written by writeTo
有没有方便的方法使用现有的方法?我将添加我当前的方法作为答案,但我希望有更好的方法。
最佳答案
我目前使用如下类:
public class InMemoryCharSink extends CharSink {
private final StringBuilder sb = new StringBuilder();
@Override
public Writer openStream() throws IOException {
return CharStreams.asWriter(sb);
}
public CharSequence getChars() {
return sb;
}
}
那么用法将是:
InMemoryCharSink sink = new InMemoryCharSink();
new Foo().writeTo(sink);
CharSequence s = sink.getChars();
关于java - Guava 的 CharSink 变成支持 StringBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606439/
我想公开一个接受 CharSink 并写入它的 API,而不是接受一个 Appendable,按照以下行: public class Foo { public void writeTo(CharS
我是一名优秀的程序员,十分优秀!