Hej muszę folder spakować do zip, zamienić na byte[], przesłać do obiektu jako Base64 potem JSONA. Problem mam w konwersji pliku zip do byte []. Przydało by się rozwiązanie w obie strony. Czyli z pliku na zip, a potem na byte [] i odwrotnie byte[] na zip. Na jednym forum znalazłem pewne rozwiązanie ale wyskakuje mi bład java.lang.NegativeArraySizeException , który nie bardzo wiem jak rozwiązać
public byte[] getBytes2(String zipPath, String zipEntry) throws IOException {
ZipFile zip = new ZipFile(zipPath);
//now say the entry in zip file has name "abc.txt"
ZipEntry entry = new ZipEntry(zipEntry);
BufferedInputStream istream = new BufferedInputStream(zip.getInputStream(entry));
int file_size = (int) entry.getCompressedSize();
byte[] blob = new byte[(int) entry.getCompressedSize()];
int bytes_read = 0;
int offset = 0;
while((bytes_read = istream.read(blob, 0, file_size)) != -1)
{
offset += bytes_read;
}
//closing every thing
zip.close();
istream.close();
return blob;
public static void main(String[] args) {
try {
byte [] byteFile = zf.getBytes2("d:\\testZip\\test2.zip","d:\\testZip\\test.zip");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}