Spakowanie folderu do zip konwersja do byte[]

0

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();
		}
}
1

Możesz spróbować odczytać plik za pomocą:

byte[] array = Files.readAllBytes(path);
0

Nie powinieneś przy istream.read, dać offsetu zamiast 0?

1 użytkowników online, w tym zalogowanych: 0, gości: 1