Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to read zip file as byte array and then convert the byte array to back to zip file?
    primarykey
    data
    text
    <p>I have tried using this code for converting a ZIP file to a byte array:</p> <pre><code>private static byte[] readZipFile(String zipFnm) // read in fnm, returning it as a single string { FileInputStream fileInputStream=null; File file = new File(zipFnm); byte[] bFile = new byte[(int) file.length()]; try{ //convert file into array of bytes fileInputStream = new FileInputStream(zipFnm); fileInputStream.read(bFile); fileInputStream.close(); }catch(Exception e){ e.printStackTrace(); } return bFile; } </code></pre> <p>and this code for converting the byte array to back to ZIP, by calling <code>writeByteToZip(fnm + ".zip");</code></p> <pre><code>private static String writeByteToZip(String outFnm) { try { FileOutputStream fileOuputStream = new FileOutputStream(outFnm); fileOuputStream.write(bFile); fileOuputStream.close(); } catch ( IOException iox ){ iox.printStackTrace(); } return outFnm; } // end of writeByteToZip() </code></pre> <p>What am I doing wrong? I get correct byte length of zip using </p> <pre><code>byte[] bzip = readZipFile(zipFnm); int totalLen1 = bzip.length; System.out.println("Total byte length of zip: " + totalLen1); </code></pre> <p>All I get is a zero size zip file and run time error in Netbeans as:</p> <pre><code>Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at java.io.FileOutputStream.write(FileOutputStream.java:305) at steg.Steg.writeByteToZip(Steg.java:402) at steg.Steg.save(Steg.java:292) at steg.frame1.jButton2ActionPerformed(frame1.java:349) at steg.frame1.access$300(frame1.java:24) at steg.frame1$4.actionPerformed(frame1.java:172) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload