You can simply iterate the byte array and print the byte using System. out. println() method.
Convert byte[] array to File using Java In order to convert a byte array to a file, we will be using a method named the getBytes() method of String class. Implementation: Convert a String into a byte array and write it in a file.
The ZIP file does not need to be unzipped, so ZipInputStream is not necessary. Use a FileInputStream to read the ZIP file and a ByteArrayOutputStream to write its contents to. Get the latter's byte[]. Use ByteArrayInputStream and FileOutputStream to reverse the process.
You can use Java's java.util.zip.ZipOutputStream to create a zip file in memory. For example:
public static byte[] zipBytes(String filename, byte[] input) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry entry = new ZipEntry(filename);
entry.setSize(input.length);
zos.putNextEntry(entry);
zos.write(input);
zos.closeEntry();
zos.close();
return baos.toByteArray();
}
I have the same problem but i needed a many files in a zip.
protected byte[] listBytesToZip(Map<String, byte[]> mapReporte) throws IOException {
String extension = ".pdf";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
for (Entry<String, byte[]> reporte : mapReporte.entrySet()) {
ZipEntry entry = new ZipEntry(reporte.getKey() + extension);
entry.setSize(reporte.getValue().length);
zos.putNextEntry(entry);
zos.write(reporte.getValue());
}
zos.closeEntry();
zos.close();
return baos.toByteArray();
}
You can create a zip file from byte array and return to ui streamedContent
public StreamedContent getXMLFile() {
try {
byte[] blobFromDB= null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
String fileName= "fileName";
ZipEntry entry = new ZipEntry(fileName+".xml");
entry.setSize(byteArray.length);
zos.putNextEntry(entry);
zos.write(byteArray);
zos.closeEntry();
zos.close();
InputStream is = new ByteArrayInputStream(baos.toByteArray());
StreamedContent zipedFile= new DefaultStreamedContent(is, "application/zip", fileName+".zip", Charsets.UTF_8.name());
return fileDownload;
} catch (IOException e) {
LOG.error("IOException e:{} ",e.getMessage());
} catch (Exception ex) {
LOG.error("Exception ex:{} ",ex.getMessage());
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With