Cómo crear un archivo zip de múltiples archivos de imagen

Estoy tratando de crear un archivo zip de varios archivos de imagen. He logrado crear el archivo zip de todas las imágenes, pero de alguna manera todas las imágenes se han colgado a 950 bytes. No sé qué está mal aquí y ahora no puedo abrir las imágenes que estaban comprimidas en ese archivo zip.

Aquí está mi código. ¿Alguien puede hacerme saber lo que está pasando aquí?

String path="c:\\windows\\twain32";
File f=new File(path);
f.mkdir();
File x=new File("e:\\test");
x.mkdir();
byte []b;
String zipFile="e:\\test\\test.zip";
FileOutputStream fout=new FileOutputStream(zipFile);
ZipOutputStream zout=new ZipOutputStream(new BufferedOutputStream(fout));


File []s=f.listFiles();
for(int i=0;i<s.length;i++)
{
    b=new byte[(int)s[i].length()];
    FileInputStream fin=new FileInputStream(s[i]);
    zout.putNextEntry(new ZipEntry(s[i].getName()));
    int length;
    while((length=fin.read())>0)
    {
        zout.write(b,0,length);
    }
    zout.closeEntry();
    fin.close();
}
zout.close();

Respuestas a la pregunta(2)

Su respuesta a la pregunta