示例#1
0
    void OnGUI()
    {
        if (GUI.Button(new Rect(50, 50, 200, 30), "使用BigEndian写入文件"))
        {
            ByteArrayOutput output = new ByteArrayOutput();
            output.endian = Endian.BigEndian;

            output.WriteBoolean(true);
            output.WriteByte(-55);
            output.WriteUnsignedByte(188);
            output.WriteShort(-12345);
            output.WriteUnsignedShort(65535);
            output.WriteInt(-1234567);
            output.WriteUnsignedInt(1234567);
            output.WriteLong(-1234567891011);
            output.WriteUnsignedLong(1234567891011);
            output.WriteFloat(123.456f);
            output.WriteDouble(123456789.123456789d);
            output.WriteUTF("Hello Unity3D! 你好,尤三弟!");

            byte[] bytes = output.bytes;
            FileHelper.SaveAsBytes("C:\\test_big_endian.bytes", bytes);

            Debug.Log("save file ok!");
        }
        if (GUI.Button(new Rect(50, 100, 200, 30), "读取BigEndian的数据"))
        {
            byte[]         bytes = FileHelper.ReadAsBytes("C:\\test_big_endian.bytes");
            ByteArrayInput input = new ByteArrayInput(bytes);
            input.endian = Endian.BigEndian;

            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
            Debug.Log(input.ReadBoolean());
            Debug.Log(input.ReadByte());
            Debug.Log(input.ReadUnsignedByte());
            Debug.Log(input.ReadShort());
            Debug.Log(input.ReadUnsignedShort());
            Debug.Log(input.ReadInt());
            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
            Debug.Log(input.ReadUnsignedInt());
            Debug.Log(input.ReadLong());
            Debug.Log(input.ReadUnsignedLong());
            Debug.Log(input.ReadFloat());
            Debug.Log(input.ReadDouble());
            Debug.Log(input.ReadUTF());
            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
        }

        if (GUI.Button(new Rect(300, 50, 200, 30), "使用LittleEndian写入文件"))
        {
            ByteArrayOutput output = new ByteArrayOutput();
            output.endian = Endian.LittleEndian;

            output.WriteBoolean(true);
            output.WriteByte(-55);
            output.WriteUnsignedByte(188);
            output.WriteShort(-12345);
            output.WriteUnsignedShort(65535);
            output.WriteInt(-1234567);
            output.WriteUnsignedInt(1234567);
            output.WriteLong(-1234567891011);
            output.WriteUnsignedLong(1234567891011);
            output.WriteFloat(123.456f);
            output.WriteDouble(123456789.123456789d);
            output.WriteUTF("Hello Unity3D! 你好,尤三弟!");

            byte[] bytes = output.bytes;
            FileHelper.SaveAsBytes("C:\\test_little_endian.bytes", bytes);

            Debug.Log("save file ok!");
        }
        if (GUI.Button(new Rect(300, 100, 200, 30), "读取LittleEndian的数据"))
        {
            byte[]         bytes = FileHelper.ReadAsBytes("C:\\test_little_endian.bytes");
            ByteArrayInput input = new ByteArrayInput(bytes);
            input.endian = Endian.LittleEndian;

            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
            Debug.Log(input.ReadBoolean());
            Debug.Log(input.ReadByte());
            Debug.Log(input.ReadUnsignedByte());
            Debug.Log(input.ReadShort());
            Debug.Log(input.ReadUnsignedShort());
            Debug.Log(input.ReadInt());
            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
            Debug.Log(input.ReadUnsignedInt());
            Debug.Log(input.ReadLong());
            Debug.Log(input.ReadUnsignedLong());
            Debug.Log(input.ReadFloat());
            Debug.Log(input.ReadDouble());
            Debug.Log(input.ReadUTF());
            Debug.Log("位置: " + input.position + ", 剩余: " + input.bytesAvailable);
        }
    }