در زمینه ی فشرده سازی در علوم رایانه روش های زیادی از جمله (( Lempel Ziv Welch)) و ((هافمن)) وجود دارد. اولی در 7zip به کار رفته که نرم افزار فشرده سازی تحت لیسانس ((LGPL)) است. در روش هافمن ابتدا (مثلا برای فشرده سازی در یک متن ) نسبت تعداد حروف الفبا به کل حروف متن بدست آمده سپس به هر حرف یک کد اختصاص می یابد. شیوه ی اختصاص این کد به این شکل است که هر حرفی تعداد وقوع بیشتری در کل متن را دارد کد کوچکتری به آن داده می شود.
در برنامه ی زیر که به زبان جاوا نوشته شده است از سه پکیج و 5 فایل جاوا که شامل پکیجی برای مواقع وفوع خطا و پکیج binarytree که شامل 3 کلاس binarynode و tree و queue است. و در پکیج کد که شامل کلاس form می باشد که تعداد تکرار حروف را بررسی کرده و شروع به ساخت درحت هافمن از طریق بررسی احتمال وقوع حروف و سپس merg کردن درخت ها و گره های ایجاد شده تا در نهایت درخت هافمن اصلی ساخته شده و آن را در جدولی مه بر حسب حروف آمده در متن داده شده است؛ قرار می دهد .
برای دادن نشانی فایل متنی به برنامه ابتدا دکمه ی<<نمایش کد هافمن>> فشارد داده و سپس در پیغام ظاهر شده در صفحه آدرس فایل به صورت کامل نوشته شود. در نهایت جدولی آماده!
در لینک زیر فایل zip که با اجرای آن خود به خود از حالت zip خارج می شود (متشکرم 7zip) و شما می توانید در یک محیط مانند netbeans آن را تغییر دهید و با استفاده از امکان build فایل jar قابل اجرا را بسازید.
http://www.adrive.com/public/6ddb730fd1bcd3fccf2ad525d850678c2f951556af92c918fcc033363f5173a3.html
منابع :آب! ، ویکی پدیا و خودم برای نوشتن کد .