android/guava/src/com/google/common/io/CharStreams.java
@Beta
  public static Writer asWriter(Appendable target) {
    if (target instanceof Writer) {
      return (Writer) target;
    }
    return new AppendableWriter(target);
  }
@Beta
  public static Writer asWriter(Appendable target) {
    if (target instanceof Writer) {
      return (Writer) target;
    }
    return new AppendableWriter(target);
  }
Returns a Writer that sends all output to the given {@link Appendable} target. Closing the
writer will close the target if it is {@link Closeable}, and flushing the writer will flush the
target if it is {@link java.io.Flushable}.

@param target the object to which output will be sent
@return a new Writer object, unless target is a Writer, in which case the target is returned