gpt4 book ai didi

java - Guava 的 CharSink 变成支持 StringBuilder?

转载 作者:行者123 更新时间:2023-11-29 05:21:16 25 4
gpt4 key购买 nike

我想公开一个接受 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com