package pas.huffman;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;

/**
 * A class that compresses and decompresses files using Huffman coding.
 */
public class MadZip {

  /**
   * Compresses a file and writes the output to another file.
   *
   * @param inFile file that needs to be compressed
   * @param outFile the compressed file
   * @throws IOException thrown if there is an error during reading or writing
   */
  public static void zip(File inFile, File outFile) throws IOException {
    
    // TODO
  }

  /**
   * Decompresses a file and writes the output to another file.
   *
   * @param inFile file that needs to be decompressed
   * @param outFile the decompressed file
   * @throws IOException thrown if there is an error during reading or writing
   * @throws ClassNotFoundException thrown if an issue occurs during deserialization
   */
  public static void unzip(File inFile, File outFile) throws IOException, ClassNotFoundException {
    
    // TODO
  }
}
