Buffer e array d bytes

ola pessoal,
estou tentando fzer um programinha q leia um array de bytes qlquer e encha um buffer de espaço x ate o limite deste buffer. por exemplo, tenhu um buffer de 30bytes e o array tem 18. entaum queria escrever esses 18 e vendo q ainda falta espaço no buffer, gostaria de botar mais 12 para entaum ter o buffer cheio!
estou com duvidas, pois estou começando agora e naum sako mto ainda!
vo enviar o codigo pra v c alguem ajuda!
vlw

public class BufferTeste3 
{
	private ByteBuffer buffer;
	 
	private void createBuffers() 
    {
        buffer = ByteBuffer.allocate (30) ; 
    }
	
    private void playWithBuffers() 
    {
        //String bytes;
    	byte [] bytes; 
        byte [] output;
       
    
        bytes = "oi como voce esta?".getBytes();
        output = new byte[bytes.length] ;
        int ctrl = 0;
        
    	    while( ctrl != bytes.length) 
    	    {	    	
    	    	buffer.put(bytes, ctrl ,buffer.limit());
    	    	buffer.flip();
    		buffer.get(output, buffer.position() ,buffer.limit());
    		buffer.compact();
    		System.out.print(new String(output));
    		ctrl += buffer.limit();
    		}
    }
    
        
    public static void main(String args[])
    {
    	BufferTeste3 bt = new BufferTeste3();
    	bt.createBuffers();
    	bt.playWithBuffers();
    }
}

alguem tem ideia?

Eu em seu lugar usaria um ByteArrayInputStream ou ByteArrayOutputStream. ByteBuffers são mais adequados para uso com NIO, e não são muito adequados para simular uma “String de Bytes” como é o que você quer fazer.

Se seu objetivo é simplesmente o de encher o buffer, vc pode simplesmente criar novas string com espaços vazios " " dentro de seu while.

nao testei aqui, mas acho que funciona