Java 类java.util.zip.ZipOutputStream 实例源码
项目:openjdk-jdk10
文件:ZeroDate.java
public static void main(String[] args) throws Exception {
// create a zip file, and read it in as a byte array
Path path = Files.createTempFile("bad", ".zip");
try (OutputStream os = Files.newOutputStream(path);
ZipOutputStream zos = new ZipOutputStream(os)) {
ZipEntry e = new ZipEntry("x");
zos.putNextEntry(e);
zos.write((int) 'x');
}
int len = (int) Files.size(path);
byte[] data = new byte[len];
try (InputStream is = Files.newInputStream(path)) {
is.read(data);
}
Files.delete(path);
// year, month, day are zero
testDate(data.clone(), 0, LocalDate.of(1979, 11, 30));
// only year is zero
testDate(data.clone(), 0 << 25 | 4 << 21 | 5 << 16, LocalDate.of(1980, 4, 5));
}
项目:sc-generator
文件:ZipUtil.java
/**
* Compresses a collection of files to a destination zip file
* @param listFiles A collection of files and directories
* @param destZipFile The path of the destination zip file
* @throws FileNotFoundException
* @throws IOException
*/
public void compressFiles(List<File> listFiles, String destZipFile) throws FileNotFoundException, IOException {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destZipFile));
for (File file : listFiles) {
if (file.isDirectory()) {
addFolderToZip(file, file.getName(), zos);
} else {
addFileToZip(file, zos);
}
}
zos.flush();
zos.close();
}
项目:ObsidianSuite
文件:ZipUtils.java
public static void zipFolder(String folderToZip, String destZipFile)
{
try
{
FileOutputStream fileWriter = new FileOutputStream(destZipFile);
ZipOutputStream zip = new ZipOutputStream(fileWriter);
addFolderToZip("", folderToZip, zip);
zip.flush();
zip.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
项目:forweaver2.0
文件:CodeService.java
/** 코드를 다운로드함.
* @param code
* @param os
*/
public void dowloadCode(Code code, OutputStream os){
try {
ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(os),Charset.forName("8859_1"));
for(SimpleCode simpleCode :code.getCodes()){
zip.putNextEntry(new ZipEntry(new String (simpleCode.getFileName().getBytes(),"8859_1") ));
if(WebUtil.isCodeName(new String(simpleCode.getFileName().getBytes("8859_1"),"EUC-KR")))
zip.write(simpleCode.getContent().getBytes("EUC-KR"));
else
zip.write(simpleCode.getContent().getBytes("8859_1"));
}
code.download();
codeDao.update(code);
zip.close();
} catch(Exception e) {
System.err.println(e.getMessage());
}
}
项目:jdk8u-jdk
文件:ClearStaleZipFileInputStreams.java
private static File createTestFile(int compression) throws Exception {
File tempZipFile =
File.createTempFile("test-data" + compression, ".zip");
tempZipFile.deleteOnExit();
try (FileOutputStream fos = new FileOutputStream(tempZipFile);
ZipOutputStream zos = new ZipOutputStream(fos)) {
zos.setLevel(compression);
for (int i = 0; i < ZIP_ENTRY_NUM; i++) {
String text = "Entry" + i;
ZipEntry entry = new ZipEntry(text);
zos.putNextEntry(entry);
try {
zos.write(data[i], 0, data[i].length);
} finally {
zos.closeEntry();
}
}
}
return tempZipFile;
}
项目:Reer
文件:RuntimeShadedJarCreator.java
private void processFiles(ZipOutputStream outputStream, Iterable<? extends File> files, byte[] buffer, HashSet<String> seenPaths, Map<String, List<String>> services,
ProgressLogger progressLogger) throws Exception {
PercentageProgressFormatter progressFormatter = new PercentageProgressFormatter("Generating", Iterables.size(files) + ADDITIONAL_PROGRESS_STEPS);
for (File file : files) {
progressLogger.progress(progressFormatter.getProgress());
if (file.getName().endsWith(".jar")) {
processJarFile(outputStream, file, buffer, seenPaths, services);
} else {
processDirectory(outputStream, file, buffer, seenPaths, services);
}
progressFormatter.increment();
}
writeServiceFiles(outputStream, services);
progressLogger.progress(progressFormatter.incrementAndGetProgress());
writeIdentifyingMarkerFile(outputStream);
progressLogger.progress(progressFormatter.incrementAndGetProgress());
}
项目:ObsidianSuite
文件:ZipUtils.java
private static void addFolderToZip(String path, String srcFolder, ZipOutputStream zip) throws Exception
{
File folder = new File(srcFolder);
for (String fileName : folder.list())
{
if (path.equals(""))
{
addFileToZip(folder.getName(), srcFolder + "/" + fileName, zip);
}
else
{
addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip);
}
}
}
项目:QN-ACTR-Release
文件:WorkloadAnalysisSession.java
@Override
public void saveResultsFile(Document doc, Element root, ZipOutputStream zos) throws IOException {
int algo, numRes = clusterOperation.size();
String algoName;
for (int i = 0; i < numRes; i++) {
algo = clusterOperation.get(i).getClusteringType();
algoName = String.valueOf(clusterOperation.get(i).getName());
algoName += "_" + i;
zos.putNextEntry(new ZipEntry(algoName + JwatSession.BINext));
switch (algo) {
case JWATConstants.KMEANS:
saveKmeansData(zos, (KMean) clusterOperation.get(i));
break;
case JWATConstants.FUZZYK:
saveFuzzyData(zos, (FuzzyKMean) clusterOperation.get(i));
break;
}
zos.closeEntry();
}
}
项目:school-website
文件:OperateFileUtils.java
/**
*
* @param map key压缩条目路径 value重命名
* @param zipPath 压缩文件路径
* @return
* @throws IOException
*/
public static boolean compress(Map<String, String> map, String zipPath) throws IOException {
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipPath));
for (Map.Entry<String, String> entry : map.entrySet()) {
File file = new File(entry.getKey());
if (file.exists()) {
InputStream inputStream = new FileInputStream(file);
ZipEntry zipEntry = new ZipEntry(entry.getValue());
zipOutputStream.putNextEntry(zipEntry);
int len = inputStream.read();
while (len != -1) {
zipOutputStream.write(len);
len = inputStream.read();
}
inputStream.close();
}
}
zipOutputStream.close();
return true;
}
项目:OpenHomeAnalysis
文件:OhaHelper.java
/**
* Compactar uma arquivo.
* @param inputFile informar o arquivo a ser compactado.
* @param zipFilePath informar o nome e caminho zip.
* @param iZipFile se necessário, informar uma {@link IZipFile}.
* @throws IOException
*/
public static void zipFile(File inputFile, String zipFilePath, IZipFile iZipFile) throws IOException {
FileOutputStream fileOutputStream = new FileOutputStream(zipFilePath);
ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
ZipEntry zipEntry = new ZipEntry(inputFile.getName());
zipOutputStream.putNextEntry(zipEntry);
FileInputStream fileInputStream = new FileInputStream(inputFile);
FileChannel fileChannel = fileInputStream.getChannel();
FileLock fileLock = fileChannel.tryLock(0L, Long.MAX_VALUE, /*shared*/true);
long sizeToZip = fileInputStream.available();
long sizeCompacted = 0;
try {
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buf)) > 0) {
sizeCompacted += bytesRead;
zipOutputStream.write(buf, 0, bytesRead);
if (iZipFile != null) iZipFile.progress(sizeToZip, sizeCompacted);
}
} finally {
fileLock.release();
zipOutputStream.closeEntry();
zipOutputStream.close();
fileOutputStream.close();
}
}
项目:incubator-netbeans
文件:CachingFileManagerTest.java
public void testGetFileForInputWithCachingArchive() throws Exception {
final File wd = getWorkDir();
final File archiveFile = new File (wd, "src.zip");
final ZipOutputStream out = new ZipOutputStream(new FileOutputStream(archiveFile));
try {
out.putNextEntry(new ZipEntry("org/me/resources/test.txt"));
out.write("test".getBytes());
} finally {
out.close();
}
final URL archiveRoot = FileUtil.getArchiveRoot(Utilities.toURI(archiveFile).toURL());
final URI expectedURI = new URL (archiveRoot.toExternalForm()+"org/me/resources/test.txt").toURI();
doTestGetFileForInput(ClassPathSupport.createClassPath(archiveRoot),
Arrays.asList(
Pair.<Pair<String,String>,URI>of(Pair.<String,String>of("","org/me/resources/test.txt"), expectedURI),
Pair.<Pair<String,String>,URI>of(Pair.<String,String>of("org.me","resources/test.txt"), expectedURI),
Pair.<Pair<String,String>,URI>of(Pair.<String,String>of("org.me","resources/doesnotexist.txt"), null)
));
}
项目:hadoop
文件:JarFinder.java
private static void zipDir(File dir, String relativePath, ZipOutputStream zos,
boolean start) throws IOException {
String[] dirList = dir.list();
for (String aDirList : dirList) {
File f = new File(dir, aDirList);
if (!f.isHidden()) {
if (f.isDirectory()) {
if (!start) {
ZipEntry dirEntry = new ZipEntry(relativePath + f.getName() + "/");
zos.putNextEntry(dirEntry);
zos.closeEntry();
}
String filePath = f.getPath();
File file = new File(filePath);
zipDir(file, relativePath + f.getName() + "/", zos, false);
}
else {
String path = relativePath + f.getName();
if (!path.equals(JarFile.MANIFEST_NAME)) {
ZipEntry anEntry = new ZipEntry(path);
copyToZipStream(f, anEntry, zos);
}
}
}
}
}
项目:careconnect-reference-implementation
文件:TerminologyLoaderTest.java
@Test
public void testLoadLoinc() throws Exception {
ourLog.info("TEST = testLoadLoinc()");
ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
ZipOutputStream zos1 = new ZipOutputStream(bos1);
addEntry(zos1, "/loinc/", "loinc.csv");
zos1.close();
ourLog.info("ZIP file has {} bytes", bos1.toByteArray().length);
ByteArrayOutputStream bos2 = new ByteArrayOutputStream();
ZipOutputStream zos2 = new ZipOutputStream(bos2);
addEntry(zos2, "/loinc/", "LOINC_2.54_MULTI-AXIAL_HIERARCHY.CSV");
zos2.close();
ourLog.info("ZIP file has {} bytes", bos2.toByteArray().length);
RequestDetails details = mock(RequestDetails.class);
when(codeSvc.findBySystem("http://loinc.org")).thenReturn(new CodeSystemEntity());
mySvc.loadLoinc(list(bos1.toByteArray(), bos2.toByteArray()), details);
verify(codeSvc).storeNewCodeSystemVersion( myCsvCaptor.capture(), any(RequestDetails.class));
CodeSystemEntity ver = myCsvCaptor.getValue();
ConceptEntity code = ver.getConcepts().iterator().next();
assertEquals("10013-1", code.getCode());
}
项目:scorekeeperfrontend
文件:DockerContainer.java
@Override
public boolean dumpDatabase(Path path, boolean compress)
{
ProcessBuilder p = Exec.build(machineenv, "docker", "exec", name, "pg_dumpall", "-U", "postgres", "-c");
p.redirectOutput(Redirect.appendTo(path.toFile()));
int ret = Exec.execit(p, null);
if ((ret == 0) && compress) {
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(path.toFile()+".zip"));
out.putNextEntry(new ZipEntry(path.getFileName().toString()));
FileInputStream in = new FileInputStream(path.toFile());
IOUtils.copy(in, out);
IOUtils.closeQuietly(out);
IOUtils.closeQuietly(in);
Files.deleteIfExists(path);
} catch (Exception ioe) {
log.log(Level.INFO, "Unable to compress database backup: " + ioe, ioe);
}
}
return ret == 0;
}
项目:BIMplatform
文件:KmzSerializer.java
@Override
public boolean write(OutputStream out, ProgressReporter progressReporter) throws SerializerException {
if (getMode() == Mode.BODY) {
try {
ZipOutputStream zipOutputStream = new ZipOutputStream(out);
zipOutputStream.putNextEntry(new ZipEntry("doc.kml"));
writeKmlFile(zipOutputStream);
zipOutputStream.closeEntry();
zipOutputStream.putNextEntry(new ZipEntry("files/collada.dae"));
ifcToCollada.writeToOutputStream(zipOutputStream, progressReporter);
zipOutputStream.closeEntry();
zipOutputStream.finish();
zipOutputStream.flush();
} catch (IOException e) {
LOGGER.error("", e);
}
setMode(Mode.FINISHED);
return true;
} else if (getMode() == Mode.HEADER) {
setMode(Mode.BODY);
return true;
} else if (getMode() == Mode.FINISHED) {
return false;
}
return false;
}
项目:incubator-netbeans
文件:OptionsExportModel.java
/** Adds build.info file with product, os, java version to zip file. */
private static void createProductInfo(ZipOutputStream out) throws IOException {
String productVersion = MessageFormat.format(
NbBundle.getBundle("org.netbeans.core.startup.Bundle").getString("currentVersion"), //NOI18N
new Object[]{System.getProperty("netbeans.buildnumber")}); //NOI18N
String os = System.getProperty("os.name", "unknown") + ", " + //NOI18N
System.getProperty("os.version", "unknown") + ", " + //NOI18N
System.getProperty("os.arch", "unknown"); //NOI18N
String java = System.getProperty("java.version", "unknown") + ", " + //NOI18N
System.getProperty("java.vm.name", "unknown") + ", " + //NOI18N
System.getProperty("java.vm.version", ""); //NOI18N
out.putNextEntry(new ZipEntry("build.info")); //NOI18N
PrintWriter writer = new PrintWriter(out);
writer.println("NetbeansBuildnumber=" + System.getProperty("netbeans.buildnumber")); //NOI18N
writer.println("ProductVersion=" + productVersion); //NOI18N
writer.println("OS=" + os); //NOI18N
writer.println("Java=" + java); //NOI18Nv
writer.println("Userdir=" + System.getProperty("netbeans.user")); //NOI18N
writer.flush();
// Complete the entry
out.closeEntry();
}
项目:shrinker
文件:JarProcessor.java
private ByteArrayOutputStream zipEntries(List<Pair<String, byte[]>> entryList) throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream(8192);
try (ZipOutputStream jar = new ZipOutputStream(buffer)) {
jar.setMethod(ZipOutputStream.STORED);
final CRC32 crc = new CRC32();
for (Pair<String, byte[]> entry : entryList) {
byte[] bytes = entry.second;
final ZipEntry newEntry = new ZipEntry(entry.first);
newEntry.setMethod(ZipEntry.STORED); // chose STORED method
crc.reset();
crc.update(entry.second);
newEntry.setCrc(crc.getValue());
newEntry.setSize(bytes.length);
writeEntryToJar(newEntry, bytes, jar);
}
jar.flush();
}
return buffer;
}
项目:ObsidianSuite
文件:ZipUtils.java
static private void addFileToZip(String path, String srcFile, ZipOutputStream zip) throws Exception
{
File folder = new File(srcFile);
if (folder.isDirectory())
{
addFolderToZip(path, srcFile, zip);
}
else
{
byte[] buf = new byte[1024];
int len;
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0)
{
zip.write(buf, 0, len);
}
in.close();
}
}
项目:JavaSDK
文件:PortfolioDataFile.java
/**
* Combines multiple files into a ZIP archive, then base-64 the ZIP archive.
*
* @param paths a list of one or more input files, that are to be compressed together
* @return the compressed output, as a String
*/
private static String zipBase64(List<Path> paths) {
if (paths.isEmpty()) {
throw new IllegalArgumentException("PortfolioDataFile requires at least one file");
}
try {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream(1024 * 8)) {
try (OutputStream baseos = Base64.getEncoder().wrap(baos)) {
try (ZipOutputStream zos = new ZipOutputStream(baseos)) {
for (Path path : paths) {
ZipEntry entry = new ZipEntry(path.getFileName().toString());
zos.putNextEntry(entry);
Files.copy(path, zos);
zos.closeEntry();
}
}
}
return baos.toString("ISO-8859-1"); // base-64 bytes are ASCII, so this is optimal
}
} catch (IOException ex) {
throw new UncheckedIOException("Failed to zip base-64 content", ex);
}
}
项目:hadoop
文件:JarFinder.java
private static void copyToZipStream(File file, ZipEntry entry,
ZipOutputStream zos) throws IOException {
InputStream is = new FileInputStream(file);
try {
zos.putNextEntry(entry);
byte[] arr = new byte[4096];
int read = is.read(arr);
while (read > -1) {
zos.write(arr, 0, read);
read = is.read(arr);
}
} finally {
try {
is.close();
} finally {
zos.closeEntry();
}
}
}
项目:rapidminer
文件:BugReport.java
public static void createBugReport(File reportFile, Throwable exception, String userMessage, Process process,
String logMessage, File[] attachments) throws IOException {
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(reportFile));
zipOut.setComment("RapidMiner bug report - generated " + new Date());
write("message.txt", "User message", userMessage, zipOut);
write("_process.xml", "Process as in memory.", process.getRootOperator().getXML(false), zipOut);
if (process.getProcessLocation() != null) {
try {
String contents = process.getProcessLocation().getRawXML();
write(process.getProcessLocation().getShortName(), "Raw process file in repository.", contents, zipOut);
} catch (Throwable t) {
write(process.getProcessLocation().getShortName(), "Raw process file in repository.",
"could not read: " + t, zipOut);
}
}
write("_log.txt", "Log message", logMessage, zipOut);
write("_properties.txt", "System properties, information about java version and operating system", getProperties(),
zipOut);
write("_exception.txt", "Exception stack trace", getStackTrace(exception), zipOut);
for (File attachment : attachments) {
writeFile(attachment, zipOut);
}
zipOut.close();
}
项目:sealtalk-android-master
文件:RongDbFilesDumperPlugin.java
private void addFiles(ZipOutputStream output, byte[] buf, File[] files) throws IOException {
for (File file : files) {
if (file.isDirectory()) {
addFiles(output, buf, file.listFiles());
} else {
output.putNextEntry(
new ZipEntry(
relativizePath(
getBaseDir(mContext).getParentFile(),
file)));
FileInputStream input = new FileInputStream(file);
try {
copy(input, output, buf);
} finally {
input.close();
}
}
}
}
项目:FireFiles
文件:FileUtils.java
private static void compressFile(String currentDir, ZipOutputStream zout, File[] files) throws Exception {
byte[] buffer = new byte[1024];
for (File fi : files) {
if (fi.isDirectory()) {
compressFile(currentDir + "/" + fi.getName(), zout, fi.listFiles());
continue;
}
ZipEntry ze = new ZipEntry(currentDir + "/" + fi.getName());
FileInputStream fin = new FileInputStream(fi.getPath());
zout.putNextEntry(ze);
int length;
while ((length = fin.read(buffer)) > 0) {
zout.write(buffer, 0, length);
}
zout.closeEntry();
fin.close();
}
}
项目:AndroidApktool
文件:Androlib.java
public void buildUnknownFiles(File appDir, File outFile, MetaInfo meta)
throws AndrolibException {
if (meta.unknownFiles != null) {
LOGGER.info("Copying unknown files/dir...");
Map<String, String> files = meta.unknownFiles;
File tempFile = new File(outFile.getParent(), outFile.getName() + ".apktool_temp");
boolean renamed = outFile.renameTo(tempFile);
if(!renamed) {
throw new AndrolibException("Unable to rename temporary file");
}
try {
ZipFile inputFile = new ZipFile(tempFile);
ZipOutputStream actualOutput = new ZipOutputStream(new FileOutputStream(outFile));
copyExistingFiles(inputFile, actualOutput);
copyUnknownFiles(appDir, actualOutput, files);
actualOutput.close();
} catch (IOException ex) {
throw new AndrolibException(ex);
}
// Remove our temporary file.
tempFile.delete();
}
}
项目:FreeStreams-TVLauncher
文件:ZipUtil.java
/**
* 压缩文件
*
* @param resFile 需要压缩的文件(夹)
* @param zipout 压缩的目的文件
* @param rootpath 压缩的文件路径
* @throws FileNotFoundException 找不到文件时抛出
* @throws IOException 当压缩过程出错时抛出
*/
private static void zipFile(File resFile, ZipOutputStream zipout, String rootpath)
throws FileNotFoundException, IOException {
rootpath = rootpath + (rootpath.trim().length() == 0 ? "" : File.separator)
+ resFile.getName();
rootpath = new String(rootpath.getBytes("8859_1"), "GB2312");
if (resFile.isDirectory()) {
File[] fileList = resFile.listFiles();
for (File file : fileList) {
zipFile(file, zipout, rootpath);
}
} else {
byte buffer[] = new byte[BUFF_SIZE];
BufferedInputStream in = new BufferedInputStream(new FileInputStream(resFile),
BUFF_SIZE);
zipout.putNextEntry(new ZipEntry(rootpath));
int realLength;
while ((realLength = in.read(buffer)) != -1) {
zipout.write(buffer, 0, realLength);
}
in.close();
zipout.flush();
zipout.closeEntry();
}
}
项目:powsybl-core
文件:ZipMemDataSourceTest.java
@Override
protected byte[] getCompressedData() throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try (ZipOutputStream os = new ZipOutputStream(bos)) {
ZipEntry entry1 = new ZipEntry("data.xiidm");
byte[] data = getUncompressedData();
entry1.setSize(data.length);
os.putNextEntry(entry1);
os.write(data);
os.closeEntry();
ZipEntry entry2 = new ZipEntry("extra_data.xiidm");
byte[] extraData = getExtraUncompressedData();
entry2.setSize(extraData.length);
os.putNextEntry(entry2);
os.write(extraData);
os.closeEntry();
}
return bos.toByteArray();
}
项目:scorekeeperfrontend
文件:DebugCollector.java
/**
* Zip all the files in our
* @param dest
* @throws IOException
*/
private void zipfiles(File dest) throws IOException
{
FileOutputStream fos = new FileOutputStream(dest);
ZipOutputStream zos = new ZipOutputStream(fos);
for (Path p : files) {
try {
Path file = p.getFileName();
if (file != null) {
zos.putNextEntry(new ZipEntry(file.toString()));
Files.copy(p, zos);
}
} catch (IOException ioe) {
log.warning("\bUnable to archive " + p);
}
zos.closeEntry();
}
zos.close();
fos.close();
}
项目:renderscript_examples
文件:RSScriptParser.java
private static void zipRSScript(String outputDir, String baseFileName) {
try {
String outputFileName = outputDir + File.separator + baseFileName + ".zip";
String inputFileNameBitcode = outputDir + File.separator + baseFileName + ".bc";
String inputFileNameProperties = outputDir + File.separator + baseFileName + ".properties";
// Output file
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName));
addZipEntry(baseFileName + ".bc", inputFileNameBitcode, out);
addZipEntry(baseFileName + ".properties", inputFileNameProperties, out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
项目:mobiletailchanger
文件:MainActivity.java
private void zip2(ZipOutputStream zos, File f, String baseDir) throws Exception
{
if (f.isDirectory())
{
File[] fs = f.listFiles();
for (File fileSec:fs)
{
zip2(zos, fileSec, baseDir + f.getName() + File.separator);
}
}
else
{
byte[] buf = new byte[1024];
InputStream is = new FileInputStream(f);
zos.putNextEntry(new ZipEntry(baseDir + f.getName()));
int len;
while ((len = is.read(buf)) != -1)
{
zos.write(buf, 0, len);
}
is.close();
}
}
项目:hadoop-oss
文件:JarFinder.java
private static void copyToZipStream(File file, ZipEntry entry,
ZipOutputStream zos) throws IOException {
InputStream is = new FileInputStream(file);
try {
zos.putNextEntry(entry);
byte[] arr = new byte[4096];
int read = is.read(arr);
while (read > -1) {
zos.write(arr, 0, read);
read = is.read(arr);
}
} finally {
try {
is.close();
} finally {
zos.closeEntry();
}
}
}
项目:hadoop-oss
文件:JarFinder.java
public static void jarDir(File dir, String relativePath, ZipOutputStream zos)
throws IOException {
Preconditions.checkNotNull(relativePath, "relativePath");
Preconditions.checkNotNull(zos, "zos");
// by JAR spec, if there is a manifest, it must be the first entry in the
// ZIP.
File manifestFile = new File(dir, JarFile.MANIFEST_NAME);
ZipEntry manifestEntry = new ZipEntry(JarFile.MANIFEST_NAME);
if (!manifestFile.exists()) {
zos.putNextEntry(manifestEntry);
new Manifest().write(new BufferedOutputStream(zos));
zos.closeEntry();
} else {
copyToZipStream(manifestFile, manifestEntry, zos);
}
zos.closeEntry();
zipDir(dir, relativePath, zos, true);
zos.close();
}
项目:EasyML
文件:FileDownloadServlet.java
/**
* Compress a single file
*
* @param file file
* @param out file stream
* @param baseDir The relative address of the file
*/
private static void zipSingleFile(File file, ZipOutputStream out,String baseDir) {
if (!file.exists()) {
return;
}
try {
int buffer = FILE_BUFFER_SIZE;
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(file));
ZipEntry entry = new ZipEntry(baseDir + file.getName());
out.putNextEntry(entry);
int count;
byte data[] = new byte[buffer];
while ((count = bis.read(data, 0, buffer)) != -1) {
out.write(data, 0, count);
}
bis.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
项目:ipack
文件:Packer.java
public Packer(final File destFile,
final Signer signer,
final Boolean inPlace) throws FileNotFoundException {
this.inPlace = inPlace;
if (inPlace) { //In codesign.py this is what we use
this.zipStream = new ZipOutputStream(
new DataOutputStream(
new ByteArrayOutputStream(128*1024*1024-1))); //Avoid java bug https://bugs.openjdk.java.net/browse/JDK-8055949 by being able to get to max buffer size of MAX_INT-16
zipStream.setLevel(Deflater.NO_COMPRESSION);
} else {
this.zipStream = new ZipOutputStream(
new BufferedOutputStream(
new FileOutputStream(destFile)));
}
this.signer = signer;
}
项目:nanocheeze
文件:Torrent2.java
static private void addFileToZip(String path, String srcFile, ZipOutputStream zip)
throws Exception {
File folder = new File(srcFile);
if (folder.isDirectory()) {
addFolderToZip(path, srcFile, zip);
} else {
byte[] buf = new byte[1024];
int len;
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0) {
zip.write(buf, 0, len);
}
in.close();
}
}
项目:doctemplate
文件:ODTMergeEngine.java
private void addManifest(ByteArrayOutputStream manifest, ZipOutputStream zipout) throws IOException {
if (manifest.size() > 0) {
zipout.putNextEntry(new ZipEntry(MANIFEST_FILE_NAME));
byte[] manifestBytes = manifest.toByteArray();
if (images != null && images.size() > 0) {
StringBuilder manifestBuilder = new StringBuilder(new String(manifestBytes, UTF8));
for (Map.Entry<String, Image> img : images.entrySet()) {
int p = manifestBuilder.indexOf(MANIFEST_END_TAG);
StringBuilder sb = new StringBuilder(MANIFEST_ENTRY_1);
sb.append(img.getValue().getFormat().toString().toLowerCase());
sb.append(MANIFEST_ENTRY_2).append(img.getKey()).append(MANIFEST_ENTRY_3);
manifestBuilder.insert(p, sb.toString());
}
manifestBytes = manifestBuilder.toString().getBytes(UTF8);
}
zipout.write(manifestBytes);
}
}
项目:openjdk-jdk10
文件:B7050028.java
public static void main(String[] args) throws Exception {
URLConnection conn = B7050028.class.getResource("B7050028.class").openConnection();
int len = conn.getContentLength();
byte[] data = new byte[len];
InputStream is = conn.getInputStream();
is.read(data);
is.close();
conn.setDefaultUseCaches(false);
File jar = File.createTempFile("B7050028", ".jar");
jar.deleteOnExit();
OutputStream os = new FileOutputStream(jar);
ZipOutputStream zos = new ZipOutputStream(os);
ZipEntry ze = new ZipEntry("B7050028.class");
ze.setMethod(ZipEntry.STORED);
ze.setSize(len);
CRC32 crc = new CRC32();
crc.update(data);
ze.setCrc(crc.getValue());
zos.putNextEntry(ze);
zos.write(data, 0, len);
zos.closeEntry();
zos.finish();
zos.close();
os.close();
System.out.println(new URLClassLoader(new URL[] {new URL("jar:" + jar.toURI() + "!/")}, ClassLoader.getSystemClassLoader().getParent()).loadClass(B7050028.class.getName()));
}
项目:My-Blog
文件:ZipUtils.java
public static void addFileToZip(String path, String srcFile, ZipOutputStream zip)
throws Exception {
File folder = new File(srcFile);
if (folder.isDirectory()) {
addFolderToZip(path, srcFile, zip);
} else {
byte[] buf = new byte[1024];
int len;
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0) {
zip.write(buf, 0, len);
}
}
}
项目:amap
文件:MIP_FileUtils.java
public static void ZipFiles(List<String> filepaths, String zipFileString)
throws Exception
{
File zipFile = new File(zipFileString);
if (zipFile != null && zipFile.exists())
{
zipFile.delete();
}
if (filepaths != null)
{
ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream(zipFileString));
for (String filepath : filepaths)
{
File file = new File(filepath);
if (file != null && file.exists())
{
ZipEntry zipEntry = new ZipEntry(file.getName());
FileInputStream inputStream = new FileInputStream(file);
outZip.putNextEntry(zipEntry);
int len;
byte[] buffer = new byte[4096];
while ((len = inputStream.read(buffer)) != -1)
{
outZip.write(buffer, 0, len);
}
outZip.closeEntry();
}
}
outZip.finish();
outZip.close();
}
}
项目:onboarding-service
文件:SignatureFileArchiver.java
public void writeSignatureFilesToZipOutputStream(List<SignatureFile> files, OutputStream outputStream) {
ZipOutputStream out = new ZipOutputStream(outputStream);
files.forEach( file -> {
writeZipEntry(file, out);
});
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
项目:osc-core
文件:ArchiveUtilTest.java
private void getZipContent(StringBuilder sb, File f) throws IOException {
try(FileOutputStream fos = new FileOutputStream(f);
ZipOutputStream out = new ZipOutputStream(fos)) {
this.archiveMap.entrySet().stream()
.sorted(Map.Entry.<String, String>comparingByValue())
.forEachOrdered(k ->addEntryToZip(sb, out, k));
}
}