private static UTF8StreamWriter utf8StreamWriter(){
  SoftReference<UTF8StreamWriter> ref=utf8StreamWriter.get();
  UTF8StreamWriter writer=(ref == null) ? null : ref.get();
  if (writer == null) {
    writer=new UTF8StreamWriter(1024 * 4);
    utf8StreamWriter.set(new SoftReference<>(writer));
  }
  writer.reset();
  return writer;
}

private static UTF8StreamWriter utf8StreamWriter ( ) { SoftReference < UTF8StreamWriter > ref = utf8StreamWriter . get ( ) ; UTF8StreamWriter writer = ( ref == null ) ? null : ref . get ( ) ; if ( writer == null ) { writer = new UTF8StreamWriter ( 1024 * 4 ) ; utf8StreamWriter . set ( new SoftReference < > ( writer ) ) ; } writer . reset ( ) ; return writer ; }
if exists , reset and return , otherwise create , reset and return a writer .
