欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于zipoutputStream的簡(jiǎn)單使用

 更新時(shí)間:2023年12月21日 10:29:42   作者:我自是年少韶華傾負(fù)  
這篇文章主要介紹了基于zipoutputStream的簡(jiǎn)單使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一 原因

 最近在改bug的時(shí)候遇到了一個(gè)與zipoutputStream相關(guān)的代碼

雖然最終不是這處代碼的問題,但是自己還是想總結(jié)一下zipoutputStream的使用

二 zipoutputStream 類圖

三 zipoutputStream使用

zipoutputStream是fileOutputStream中的一種,它可以將內(nèi)容直接寫入到zip包中。

一般創(chuàng)建zipoutputStream通常是封裝一個(gè)FileOutputStream,然后在每寫入一個(gè)文件之前,需要先調(diào)用一次putNextEntry,然后使用write寫入byte[]類型的數(shù)據(jù),當(dāng)寫入完畢的時(shí)候使用colseEntry來結(jié)束這個(gè)文件的打包

其中

ZipEntry 表示壓縮文件的條目 (就相當(dāng)與java文件中的directory目錄一樣)

putNextEntry 開始編寫新的ZIP文件條目并將流定位到條目數(shù)據(jù)的開頭(換一個(gè)新的開始從頭寫).

如果仍然有效,則關(guān)閉當(dāng)前的目錄,如果沒有為目錄指定相關(guān)的壓縮方法,則使用默認(rèn)的壓縮方法。

如果沒有設(shè)置時(shí)間,則默認(rèn)使用當(dāng)前時(shí)間  (就是將條目放到zip包中)

代碼說明:

import org.junit.Test;
 
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ziptest {
        @Test
        public void test() throws IOException {
            //File.separator代表了當(dāng)前系統(tǒng)的文件分割符
            //linux使用/分割符會(huì)報(bào)錯(cuò)找不到文件,window系統(tǒng)下/和\都可以作為文件路徑
            System.out.println("File.separator="+ File.separator);
 
            File file = new File("D:" + File.separator + "upgrade46.txt");
            File zipFile = new File("d:" + File.separator + "hello.zip");
            //讀取相關(guān)的文件
            InputStream input = new FileInputStream(file);
            //設(shè)置輸出流
            ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(
                    zipFile));
 
            zipOut.putNextEntry(new ZipEntry(file.getName()));
            // 設(shè)置注釋
            zipOut.setComment("hello");
            int temp = 0;
            //讀取相關(guān)的文件
            while((temp = input.read()) != -1){
                //寫入輸出流中
                zipOut.write(temp);
            }
            //關(guān)閉流
            input.close();
            zipOut.close();
        }
}

實(shí)現(xiàn)效果:

實(shí)現(xiàn)原理:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • String字符串拼接方法concat和+的效率對(duì)比

    String字符串拼接方法concat和+的效率對(duì)比

    這篇文章主要介紹了String字符串拼接方法concat和+的效率對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 淺談Java中向上造型向下造型和接口回調(diào)中的問題

    淺談Java中向上造型向下造型和接口回調(diào)中的問題

    這篇文章主要介紹了淺談Java中向上造型向下造型和接口回調(diào)中的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java中的?HTTP?協(xié)議原理詳解

    Java中的?HTTP?協(xié)議原理詳解

    這篇文章主要介紹了Java中的?HTTP?協(xié)議原理詳解,HTTP超文本傳輸協(xié)議,下文簡(jiǎn)稱?HTTP,它的作用是用于實(shí)現(xiàn)服務(wù)器端和客戶端的數(shù)據(jù)傳輸?shù)?/div> 2022-07-07
  • Java實(shí)現(xiàn)遞歸刪除菜單和目錄及目錄下所有文件

    Java實(shí)現(xiàn)遞歸刪除菜單和目錄及目錄下所有文件

    這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)遞歸刪除菜單和刪除目錄及目錄下所有文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2025-03-03
  • Java集合類之TreeSet的用法詳解

    Java集合類之TreeSet的用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合類中TreeSet的用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下
    2022-08-08
  • java的arraylist排序示例(arraylist用法)

    java的arraylist排序示例(arraylist用法)

    這篇文章主要介紹了java的arraylist排序示例,學(xué)習(xí)一下arraylist的用法,需要的朋友可以參考下
    2014-03-03
  • java利用時(shí)間格式生成唯一文件名的方法

    java利用時(shí)間格式生成唯一文件名的方法

    這篇文章主要介紹了java利用時(shí)間格式生成唯一文件名的方法,需要的朋友可以參考下
    2017-01-01
  • Java輕松入門冒泡?選擇?插入?希爾?歸并排序算法

    Java輕松入門冒泡?選擇?插入?希爾?歸并排序算法

    這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開發(fā)中,對(duì)排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時(shí)候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下
    2022-02-02
  • Kafka的安裝及接入SpringBoot的詳細(xì)過程

    Kafka的安裝及接入SpringBoot的詳細(xì)過程

    Kafka 是一種高性能、分布式的消息隊(duì)列系統(tǒng),最初由 LinkedIn 公司開發(fā),并于2011年成為 Apache 頂級(jí)項(xiàng)目,這篇文章主要介紹了Kafka的安裝及接入SpringBoot,需要的朋友可以參考下
    2024-05-05
  • 基于Spring Batch向Elasticsearch批量導(dǎo)入數(shù)據(jù)示例

    基于Spring Batch向Elasticsearch批量導(dǎo)入數(shù)據(jù)示例

    本文介紹了基于Spring Batch向Elasticsearch批量導(dǎo)入數(shù)據(jù)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02

最新評(píng)論