    001    package net.minecraft.network.rcon;
    002
    003    import java.io.ByteArrayOutputStream;
    004    import java.io.DataOutputStream;
    005    import java.io.IOException;
    006
    007    public 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    }