Compactando um arquivo ou uma pasta

boa noite
estou tentando compactar um arquivo ou uma pasta
em vez de compactar ele esta comronpendo o arquivo
alguem pode me ajudar??
obrigado

import java.io.;
import java.util.zip.
;

public class compactacao{
public static void main(String args[]) {

// caminho do arquivo ou pasta que será compactado
String pasta = "C:\\teste";

// Cria um buffer para ler os dados do arquivo
byte[] buf = new byte[1024];

try{
  // Cria o arquivo zip
  String compac = "C:\\teste";
  ZipOutputStream out = new ZipOutputStream(new
    FileOutputStream(compac));

  // Comprime o arquivo
  FileInputStream in = new FileInputStream(pasta);

  // Adiciona o arquivo ao fluxo de saída
  out.putNextEntry(new ZipEntry(pasta));

  // transfere dados do arquivo para o arquivo zip
  int len;
  while((len = in.read(buf)) > 0){
    out.write(buf, 0, len);
  }

  // Finaliza a entrada
  out.closeEntry();
  in.close();

  // Completa o arquivo zip
  out.close();
}
catch(IOException e){
  // possíveis erros aqui
} 

}
}