protected void fillBytes(int value, long count) throws BitStreamException {
		// if it's short, write bytes directly
		if (count < PAD_LIMIT) {
			for (int i = 0; i < count; i++) writeByte(value);
			return;
		}

		// obtain an array we can use to write the bytes efficiently
		byte b = (byte) value;
		byte[] buffer = getBuffer(b);
		int len;
		if (buffer == null) {
			//TODO should all buffers be cached?
			len = count > PAD_BUFFER ? PAD_BUFFER : (int) count;
			buffer = new byte[len];
			Arrays.fill(buffer, b);
		} else {
			len = PAD_BUFFER;
		}

		// if we can, just do it with a single buffer
		if (count <= len) {
			writeBytes(buffer, 0, (int) count);
			return;
		}

		// write the buffer as many times as we need to
		long limit = count / len;
		for (long i = 0; i < limit; i++) {
			writeBytes(buffer, 0, len);
		}
		int r = (int) (count - limit * len);
		if (r != 0) writeBytes(buffer, 0, r);
	}
protected void fillBytes ( int value , long count ) throws BitStreamException { if ( count < PAD_LIMIT ) { for ( int i = 0 ; i < count ; i ++ ) writeByte ( value ) ; return ; } byte b = ( byte ) value ; byte [ ] buffer = getBuffer ( b ) ; int len ; if ( buffer == null ) { len = count > PAD_BUFFER ? PAD_BUFFER : ( int ) count ; buffer = new byte [ len ] ; Arrays . fill ( buffer , b ) ; } else { len = PAD_BUFFER ; } if ( count <= len ) { writeBytes ( buffer , 0 , ( int ) count ) ; return ; } long limit = count / len ; for ( long i = 0 ; i < limit ; i ++ ) { writeBytes ( buffer , 0 , len ) ; } int r = ( int ) ( count - limit * len ) ; if ( r != 0 ) writeBytes ( buffer , 0 , r ) ; }
Writes a single value repeatedly into the sequence.

@param value
the value to be written
@param count
the number of bytes to write
@throws BitStreamException
if an exception occurs when writing