org.eclipse.jgit.util.io

## Class MessageWriter

- java.lang.Object
- - java.io.Writer
  - - org.eclipse.jgit.util.io.MessageWriter

All Implemented Interfaces:
  Closeable, Flushable, Appendable, AutoCloseable

    public class MessageWriter
    extends Writer

Combines messages from an OutputStream (hopefully in UTF-8) and a Writer.

This class is primarily meant for `BaseConnection` in contexts where a standard error stream from a command execution, as well as messages from a side-band channel, need to be combined together into a buffer to represent the complete set of messages from a remote repository.

Writes made to the writer are re-encoded as UTF-8 and interleaved into the buffer that `getRawStream()` also writes to.

`toString()` returns all written data, after converting it to a String under the assumption of UTF-8 encoding.

Internally `RawParseUtils.decode(byte[])` is used by `toString()` tries to work out a reasonably correct character set for the raw data.

### Field Summary

### Fields inherited from class java.io.Writer

`lock`

### Constructor Summary

Constructors
Constructor and Description
`MessageWriter()` Create an empty writer.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()`
`void` `flush()`
`OutputStream` `getRawStream()`
`String` `toString()`
`void` `write(char[] cbuf, int off, int len)`

### Methods inherited from class java.io.Writer

`append, append, append, write, write, write, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### MessageWriter

    public MessageWriter()

Create an empty writer.

### Method Detail

#### write

    public void write(char[] cbuf,
                      int off,
                      int len)
               throws IOException

Specified by:
  `write` in class `Writer`
Throws:
  `IOException`

#### getRawStream

    public OutputStream getRawStream()

Returns:
  the underlying byte stream that character writes to this writer drop into. Writes to this stream should should be in UTF-8.

#### close

    public void close()
               throws IOException

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in class `Writer`
Throws:
  `IOException`

#### flush

    public void flush()
               throws IOException

Specified by:
  `flush` in interface `Flushable`
Specified by:
  `flush` in class `Writer`
Throws:
  `IOException`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`
Returns:
  string version of all buffered data.