List of usage examples for org.apache.commons.compress.archivers.ar ArArchiveOutputStream closeArchiveEntry
public void closeArchiveEntry() throws IOException
From source file:com.espringtran.compressor4j.processor.ArProcessor.java
/** * Compress data/* w w w. j a v a2s . c om*/ * * @param fileCompressor * FileCompressor object * @return * @throws Exception */ @Override public byte[] compressData(FileCompressor fileCompressor) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ArArchiveOutputStream aos = new ArArchiveOutputStream(baos); try { for (BinaryFile binaryFile : fileCompressor.getMapBinaryFile().values()) { ArArchiveEntry entry = new ArArchiveEntry(binaryFile.getDesPath(), binaryFile.getActualSize()); aos.putArchiveEntry(entry); aos.write(binaryFile.getData()); aos.closeArchiveEntry(); } aos.flush(); aos.finish(); } catch (Exception e) { FileCompressor.LOGGER.error("Error on compress data", e); } finally { aos.close(); baos.close(); } return baos.toByteArray(); }
From source file:com.moss.simpledeb.core.DebWriter.java
public void write(OutputStream out) throws Exception { if (out == null) { throw new NullPointerException(); }/*from w w w. j a v a2 s.c o m*/ DebState state = new DebState(); for (DebAction action : pkg.actions()) { action.run(state); } ArArchiveOutputStream ar = new ArArchiveOutputStream(out); /* * Version */ byte[] versionData = "2.0\n".getBytes(); ArArchiveEntry versionEntry = new ArArchiveEntry("debian-binary", versionData.length, 0, 0, 0664, System.currentTimeMillis()); ar.putArchiveEntry(versionEntry); ar.write(versionData); ar.closeArchiveEntry(); /* * Control */ byte[] controlFileData = buildGzipTar(state.controlPaths); ArArchiveEntry controlEntry = new ArArchiveEntry("control.tar.gz", controlFileData.length, 0, 0, 0664, System.currentTimeMillis()); ar.putArchiveEntry(controlEntry); ar.write(controlFileData); ar.closeArchiveEntry(); /* * Data */ byte[] contentData = buildGzipTar(state.contentPaths); ArArchiveEntry contentEntry = new ArArchiveEntry("data.tar.gz", contentData.length, 0, 0, 0664, System.currentTimeMillis()); ar.putArchiveEntry(contentEntry); ar.write(contentData); ar.closeArchiveEntry(); ar.close(); }
From source file:com.mobilesorcery.sdk.builder.linux.deb.DebBuilder.java
/** * Create debian package/*from w w w . jav a 2 s. c o m*/ * * @param p Path to write to */ public String build(File p) throws Exception, IOException, FileNotFoundException { File ftemp; String fileName = m_packName + ".deb"; File filePack = new File(p, fileName); long sysTime = System.currentTimeMillis(); FileOutputStream fos = new FileOutputStream(filePack); BufferedOutputStream bos = new BufferedOutputStream(fos); ArArchiveOutputStream aros = new ArArchiveOutputStream(bos); byte[] debBin = { (byte) '2', (byte) '.', (byte) '0', (byte) 0x0a }; // Write the file 'debian-binary' aros.putArchiveEntry(new ArArchiveEntry("debian-binary", 4, 0, 0, 0x81a4, sysTime)); aros.write(debBin); aros.closeArchiveEntry(); // Create control.tar.gz ftemp = File.createTempFile(sysTime + "", "control.tar.gz"); doCreateControlTarGZip(ftemp); aros.putArchiveEntry(new ArArchiveEntry("control.tar.gz", ftemp.length(), 0, 0, 0x81a4, sysTime)); BuilderUtil.getInstance().copyFileToOutputStream(aros, ftemp); aros.closeArchiveEntry(); ftemp.delete(); // Create data.tar.gz ftemp = File.createTempFile(sysTime + "", "data.tar.gz"); doAddFilesToTarGZip(ftemp); aros.putArchiveEntry(new ArArchiveEntry("data.tar.gz", ftemp.length(), 0, 0, 0x81a4, sysTime)); BuilderUtil.getInstance().copyFileToOutputStream(aros, ftemp); aros.closeArchiveEntry(); ftemp.delete(); // Done aros.close(); bos.close(); fos.close(); // Return absolute path return filePack.getName(); }
From source file:com.kloudtek.buildmagic.tools.createinstaller.deb.CreateDebTask.java
@Override public void execute() throws BuildException { try {//from w w w.ja v a 2 s. c om prepare(); final ArArchiveOutputStream debFile = new ArArchiveOutputStream(new FileOutputStream(destfile)); // create debian-binary debFile.putArchiveEntry(new ArArchiveEntry("debian-binary", DEBVERSION.length)); debFile.write(DEBVERSION); debFile.closeArchiveEntry(); // create control.tar.gz DataBuffer controlFile = createControlArchive(); ArchiveHelper.write(debFile, controlFile, "control.tar.gz"); controlFile.clear(); // create data.tar.gz DataBuffer dataArchive = createDataArchive(); ArchiveHelper.write(debFile, dataArchive, "data.tar.gz"); dataArchive.clear(); debFile.close(); log("Created " + destfile.getPath()); } catch (RuntimeException e) { throw new BuildException(e); } catch (IOException e) { throw new BuildException(e); } finally { dataBufferManager.clear(); } }
From source file:org.vafer.jdeb.ar.ArOutputStreamTestCase.java
public void testWrite() throws Exception { final File out1 = File.createTempFile("jdeb", ".ar"); final ArArchiveOutputStream os = new ArArchiveOutputStream(new FileOutputStream(out1)); os.putArchiveEntry(new ArArchiveEntry("data", 4)); os.write("data".getBytes()); os.closeArchiveEntry(); os.close();//from w w w. j a va 2 s. co m assertTrue(out1.delete()); }
From source file:org.vafer.jdeb.DebMaker.java
private void addTo(ArArchiveOutputStream pOutput, String pName, String pContent) throws IOException { final byte[] content = pContent.getBytes(); pOutput.putArchiveEntry(new ArArchiveEntry(pName, content.length)); pOutput.write(content);//from w ww . j av a2 s .c om pOutput.closeArchiveEntry(); }
From source file:org.vafer.jdeb.DebMaker.java
private void addTo(ArArchiveOutputStream pOutput, String pName, File pContent) throws IOException { pOutput.putArchiveEntry(new ArArchiveEntry(pName, pContent.length())); final InputStream input = new FileInputStream(pContent); try {// ww w .j a v a 2s . c o m Utils.copy(input, pOutput); } finally { input.close(); } pOutput.closeArchiveEntry(); }
From source file:org.vafer.jdeb.Processor.java
private void addTo(final ArArchiveOutputStream pOutput, final String pName, final String pContent) throws IOException { final byte[] content = pContent.getBytes(); pOutput.putArchiveEntry(new ArArchiveEntry(pName, content.length)); pOutput.write(content);// w w w . j a v a 2 s.c o m pOutput.closeArchiveEntry(); }
From source file:org.vafer.jdeb.Processor.java
private void addTo(final ArArchiveOutputStream pOutput, final String pName, final File pContent) throws IOException { pOutput.putArchiveEntry(new ArArchiveEntry(pName, pContent.length())); final InputStream input = new FileInputStream(pContent); try {// w ww. jav a 2 s .co m Utils.copy(input, pOutput); } finally { input.close(); } pOutput.closeArchiveEntry(); }