Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Программа кодирования и декодирования по методу Хаффмана

Программа реализует кодирование и декодирование файлов по методу Хаффмана. Обработка выполняется побайтово, поэтому программа подходит как для текстовых, так и для бинарных файлов.

Состав проекта

src      - исходный код программы на Java
input    - исходные файлы для контрольной проверки
encoded  - каталог для закодированных файлов
decoded  - каталог для файлов, восстановленных после декодирования
docs     - описание структуры закодированного файла
out      - каталог для class-файлов после компиляции

Основные файлы исходного кода:

Main.java             - обработка аргументов командной строки
HuffmanArchiver.java  - кодирование, декодирование и работа с форматом HUF1
HuffmanNode.java      - узел дерева Хаффмана
BitOutputStream.java  - побитовая запись данных
BitInputStream.java   - побитовое чтение данных

Сборка

Для сборки проекта используется JDK. Сборка выполняется командой:

build.bat

После успешной сборки создаются:

out\*.class
huffman.jar

Ручная команда компиляции:

javac -encoding UTF-8 -d out src\*.java

Запуск программы

Общий формат запуска:

java -jar huffman.jar encode <исходный_файл> <закодированный_файл>
java -jar huffman.jar decode <закодированный_файл> <восстановленный_файл>

Также можно запускать программу без jar-файла:

java -cp out Main encode <исходный_файл> <закодированный_файл>
java -cp out Main decode <закодированный_файл> <восстановленный_файл>

Для удобства добавлены командные файлы:

encode.bat input\test1.txt encoded\test1.huff
decode.bat encoded\test1.huff decoded\test1_decoded.txt

Контрольная проверка

В каталоге input подготовлены файлы:

test1.txt - файл из 10 одинаковых символов
test2.txt - файл длиной 20 байт из трех разных символов с частотами 10, 5 и 5

После компиляции программы в качестве бинарного файла для проверки используется:

out\Main.class

Запуск всех проверок:

run_tests.bat

Скрипт выполняет кодирование, декодирование и побайтовое сравнение исходных и восстановленных файлов.

Описание формата файла

Описание структуры закодированного файла находится в документе:

docs\Описание_структуры_закодированного_файла_HUF1.pdf

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages