entao galera tenho quer fazer um trabalho
para compacta e decopactaçao
bem foi facil acha ums codigos
na net junta tuda e fazer o bagulho roda
ele compacta tudo certinho
mais quando vou descopacta ele os
arquivos que ta dentro zera tudo
os dados dos txt some algum saber me dizer pq
sera que to fazendo algum errado
ae o codigo
package compactaçao;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
/**
*
* @author guilherme
*/
public class Compacta {
static final int BUFFER = 2048;
// TODO code application logic here
public void compacta()
{
System.out.println("Exemplo de criaçao de arquivos ZIP");
//arquivos a serem zipados (crie estes arquivos na pasta onde voce vai colocar este codigo-fonte)
String[] filesZip = new String[3];
filesZip[0] = "primeiro.txt";
filesZip[1] = "segundo.txt";
filesZip[2] = "terceiro.txt";
byte[] buffer = new byte[18024];
//nome do arquivo zip
String zipFileName ="c:\\example.zip";
try{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
// ajusta modo de compressão
out.setLevel(Deflater.DEFAULT_COMPRESSION);
//faz a iteração sobre os arquivos ,adicionando-os arquivos ZIP
for(int i = 0;i < filesZip.length;i++)
{
System.out.println(i);
FileInputStream in = new FileInputStream(filesZip[i]);
//adicionar zip no output strean
out.putNextEntry(new ZipEntry(filesZip[i]));
//transfer bytes from the current file to the zip file
int len;
while((len = in.read())> 0)
{
out.write(buffer,0,len);
}
// fecha o current
out.closeEntry();
//fecha o input stream
}
out.close();
}
catch(IllegalArgumentException r)
{
r.printStackTrace();
}
catch(FileNotFoundException r)
{
r.printStackTrace();
}
catch(IOException r)
{
r.printStackTrace();
}
}
public void desconpacta()
{
try
{
System.out.println("Example of ZIP file decompression.");
// Specify file to decompress
String inFileName = "c:\\example.zip";
// Specify destination where file will be unzipped
String destinationDirectory = "c:\\temp\\";
File sourceZipFile = new File(inFileName);
File unzipDestinationDirectory = new File(destinationDirectory);
// Open Zip file for reading
ZipFile zipFile = new ZipFile(sourceZipFile, ZipFile.OPEN_READ);
// Create an enumeration of the entries in the zip file
Enumeration zipFileEntries = zipFile.entries();
// Process each entry
while (zipFileEntries.hasMoreElements())
{
// grab a zip file entry
ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
String currentEntry = entry.getName();
System.out.println("Extracting: " + entry);
File destFile =
new File(unzipDestinationDirectory, currentEntry);
// grab file's parent directory structure
File destinationParent = destFile.getParentFile();
// create the parent directory structure if needed
destinationParent.mkdirs();
// extract file if not a directory
if (!entry.isDirectory())
{
BufferedInputStream is =
new BufferedInputStream(zipFile.getInputStream(entry));
int currentByte;
// establish buffer for writing file
byte data[] = new byte[BUFFER];
// write the current file to disk
FileOutputStream fos = new FileOutputStream(destFile);
BufferedOutputStream dest =
new BufferedOutputStream(fos, BUFFER);
// read and write until last byte is encountered
while ((currentByte = is.read(data, 0, BUFFER)) != -1)
{
dest.write(data, 0, currentByte);
}
dest.flush();
dest.close();
is.close();
}
}
zipFile.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
ser algum poder me ajuda agradeço muito
