public String readUnicodeString(long index) throws IOException {
        StringBuffer buffer = new StringBuffer();
		char c = 0;
		int i = 0;
        while (i < length()) {
            c  = (char)((provider.readByte(index++) & 0xff));
            c += (char)((provider.readByte(index++) & 0xff) << 8);
            if (c == 0x0000) {
                break;
            }
            buffer.append(c); 
            i += 2;
        }
        return buffer.toString().trim();
    }
Returns a null-terminated Unicode string starting
at <code>index</code>. The end of the string
is denoted by two-byte Unicode <code>null</code> character.
@param index the index where the Unicode string begins
@return the Unicode string
@exception IOException if an I/O error occurs
GPL/DMG/src/dmg/java/mobiledevices/dmg/ghidra/GBinaryReader.java