Salve
Mi sto appena affacciando al mondo di java.
In questo momento, sto creando un'applicazione a console, che cerca il file.zip passato come argomento, ne elenca i file e li estrae.
Il codice è:
A parte il fatto che non riesco a capire le condizione dell'ultimo ciclo for (l'ho preso da una guidacodice:import java.util.*; import java.util.zip.*; import java.io.*; class extract { public static void main (String [] f) throws IOException { ZipFile Zf; try {Zf= new ZipFile (f[0]);} catch (ZipException e) {Zf=null;} catch (IOException e1) {Zf=null;}; System.out.println("Decomprimo "+Zf.getName()); Enumeration files = Zf.entries(); while(files.hasMoreElements ()) { ZipEntry one = (ZipEntry) files.nextElement(); System.out.println ("Estraggo "+one+" da "+Zf.getName()); System.out.println("Dimensione compresso: "+one.getCompressedSize()); System.out.println("Dimensione non compresso: "+one.getSize()); System.out.println("CRC: "+one.getCrc()); System.out.println("Modificato in data: "+one.getTime()); InputStream in = Zf.getInputStream(one); FileOutputStream out= new FileOutputStream(one.getName()); for (int ch=in.read();ch!=-1;ch=in.read()) { out.write(ch); out.close(); in.close(); } } } }), ho un errore di input/output su ogni zip che decido di estrarre. Tutto il resto dello script funziona (elenca i files, le dimensioni compresso e non, e il CRC), ma l'estrazione fallisce. Per completezza riporto l'output:
Qualcuno sa spiegare cosa sto sbagliando?Exception in thread "main" java.io.IOException: Stream closed
at java.util.zip.InflaterInputStream.ensureOpen(Unkno wn Source)
at java.util.zip.InflaterInputStream.read(Unknown Source)
at extract.main(extract.java:25)![]()

), ho un errore di input/output su ogni zip che decido di estrarre. Tutto il resto dello script funziona (elenca i files, le dimensioni compresso e non, e il CRC), ma l'estrazione fallisce. Per completezza riporto l'output:
Rispondi quotando