A Java based adaptive Huffman algorithm implementation