Nível de compressão de compactação em java?

[color=darkblue] Alguém sabe alguma forma de melhorar o nível de compactação, tornando os arquivos menores ? no caso estou zipando um ".txt" com 20 mb e ele é gerado com quase 6 MB:[/color]

public void generatorZip(String entrada, String nome) throws FileNotFoundException,
			IOException {
		byte[] buf = new byte[1024];

		FileOutputStream file = new FileOutputStream("/"+nome+".zip");
		ZipOutputStream out = new ZipOutputStream(file);
		out.setLevel(Deflater.BEST_COMPRESSION);

		FileInputStream in = new FileInputStream(entrada);
		ZipEntry zip = new ZipEntry(entrada);
		out.putNextEntry(zip);

		int len;
		while ((len = in.read(buf)) > 0) {
			out.write(buf, 0, len);
		}

		out.closeEntry();
		out.close();
		in.close();
	}

[color=darkblue] Se alguém puder ajudar desde já agradeço ![/color]