public final void writeVLong(long i) {
        assert i >= 0L;
        while ((i & ~0x7FL) != 0L) {
            writeByte((byte) ((i & 0x7FL) | 0x80L));
            i >>>= 7;
        }
        writeByte((byte) i);
    }
public final void writeVLong ( long i ) { assert i >= 0L ; while ( ( i & ~ 0x7FL ) != 0L ) { writeByte ( ( byte ) ( ( i & 0x7FL ) | 0x80L ) ) ; i >>>= 7 ; } writeByte ( ( byte ) i ) ; }
Writes an long in a variable-length format. Writes between one and nine bytes. Smaller values
take fewer bytes. Negative numbers are not supported.
<p>
The format is described further in Lucene its DataOutput#writeVInt(int)
<p>
See DataInput readVLong of Lucene