Olá, eu preciso urgentemente compactar 50 mil arquivos .dat no formato .gz em um só arquivo, esse é o problema eu sei compactar cada um separadamente, eu sabia compactar vários em um mas agora não estou conseguindo, axo que tenho que botar um loop que alterna o FileInputStream e ir adicionando os bytes ao buffer até terminar de passar pelos arquivos ai eu escrevo .gz file usando o buffer certo? mas não estou conseguindo botar na prática alguém pooor favor poderia fazer esses dois métodos para mim?(o de ler e o de escrever) sei que quem já tem prática pode fazer em 2 minutinhos, é caso de vida ou morte e ai eu vou finalmente intender como é :?
Vlw :lol: :lol: :lol:
Criei esse:
public static void Compress(int maxFiles) throws IOException {
FileInputStream input = null;
GZIPOutputStream outPut = null;
try {
byte[] buffer = new byte[2048];
outPut = new GZIPOutputStream(new FileOutputStream(Destine + "Models.gz"));
OutputStream out = new BufferedOutputStream(new GZIPOutputStream(outPut));
long numWritten = 0;
for (int id = 0; id < maxFiles; id++) {
if (FileExists(Source + id + ".dat"))
input = new FileInputStream(Source + id + ".dat");
else
continue;
while ((bytesRead = input.read(buffer)) != -1) {
numWritten += bytesRead;
}
}
out.write(buffer, 0, bytesRead);
input.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Mas ta dando
java.lang.ArrayIndexOutOfBoundsException