Dividir um arquivo em partes e zipar essas partes

Estou tentando gerar vários arquivos zipados a partir de um arquivo.
Achei um código na internet que gerar um arquivo zipado e estou tentando adaptar para gerar arquivos de no máximo 2kb.
Estou conseguindo gerar os arquivos só que parece que a informação não está sendo gravada de forma correta pois não consigo descompactá-los.


import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.zip.Adler32; 
import java.util.zip.CheckedOutputStream; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream;



public class teste{ 
	
	public static void main(String args[]) { 
	
	// nome do arquivo que será compactado 
	String arquivo = "enem.png"; 	
	
	// Cria um buffer para ler os dados do arquivo 
	byte[] buf = new byte[2048]; 
	
	try{ 	
		
		// Comprime o arquivo 
		FileInputStream in = new FileInputStream(arquivo); 		
		
		// transfere dados do arquivo para o arquivo zip 
		int len; 
		int cont = 1;
		ZipOutputStream saida;
		
		while((len = in.read(buf)) > 0){ 
			
			//nomes dos arquivso zipados
			//cria os nomes
			String nomeArGerado  = "auxiliar/testes.part" + cont +".zip" ; 
			//cria o arquivo
			saida = new ZipOutputStream(new FileOutputStream(nomeArGerado)); 
			
			saida.putNextEntry(new ZipEntry(arquivo)); 
			//escreve
			saida.write(buf, 0, len);
		   
		    cont++;
			saida.closeEntry();
		} 
		
		// Finaliza a entrada 
		
		in.close(); 
	
	} 
	catch(IOException e){ 
	// possíveis erros aqui 
	} 
	} 
}

Não sei se estou no caminho certo. Preciso de ajuda.