    001package net.minecraft.network.rcon;
    002
    003import java.io.ByteArrayOutputStream;
    004import java.io.DataOutputStream;
    005import java.io.IOException;
    006
    007public class RConOutputStream
    008{
    009    /** Output stream */
    010    private ByteArrayOutputStream byteArrayOutput;
    011
    012    /** ByteArrayOutputStream wrapper */
    013    private DataOutputStream output;
    014
    015    public RConOutputStream(int par1)
    016    {
    017        this.byteArrayOutput = new ByteArrayOutputStream(par1);
    018        this.output = new DataOutputStream(this.byteArrayOutput);
    019    }
    020
    021    /**
    022     * Writes the given byte array to the output stream
    023     */
    024    public void writeByteArray(byte[] par1ArrayOfByte) throws IOException
    025    {
    026        this.output.write(par1ArrayOfByte, 0, par1ArrayOfByte.length);
    027    }
    028
    029    /**
    030     * Writes the given String to the output stream
    031     */
    032    public void writeString(String par1Str) throws IOException
    033    {
    034        this.output.writeBytes(par1Str);
    035        this.output.write(0);
    036    }
    037
    038    /**
    039     * Writes the given int to the output stream
    040     */
    041    public void writeInt(int par1) throws IOException
    042    {
    043        this.output.write(par1);
    044    }
    045
    046    /**
    047     * Writes the given short to the output stream
    048     */
    049    public void writeShort(short par1) throws IOException
    050    {
    051        this.output.writeShort(Short.reverseBytes(par1));
    052    }
    053
    054    /**
    055     * Returns the contents of the output stream as a byte array
    056     */
    057    public byte[] toByteArray()
    058    {
    059        return this.byteArrayOutput.toByteArray();
    060    }
    061
    062    /**
    063     * Resets the byte array output.
    064     */
    065    public void reset()
    066    {
    067        this.byteArrayOutput.reset();
    068    }
    069}