最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java如何利用NIO壓縮文件或文件夾

 更新時間:2023年12月27日 14:41:00   作者:劉瑾言  
這篇文章主要介紹了java如何利用NIO壓縮文件或文件夾問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

java利用NIO壓縮文件或文件夾

package liu.cn.ixj.util;
 
import java.io.*;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
 
public class CompressUtils {
    private static  ZipOutputStream zipOutputStream=null;
    private static  ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
 
    public static void main(String[] args) {
        try {
            zipOutputStream=new ZipOutputStream(new FileOutputStream(new File("E://aa.zip")));
            toZip(new File("E:\\MyDownloads"));
            zipOutputStream.flush();
            zipOutputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void toZip(File file){
        if (file.isFile()){
            try {
                zipOutputStream.putNextEntry(new ZipEntry(file.getAbsolutePath().substring(3,file.getAbsolutePath().length())));
                FileChannel channel = new FileInputStream(file).getChannel();
                while (true){
                    byteBuffer.clear();
                    int read = channel.read(byteBuffer);
                    if (read==-1)break;;
                    zipOutputStream.write(byteBuffer.array());
                }
                channel.close();
                zipOutputStream.closeEntry();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            File[] files = file.listFiles();
            if (files==null||files.length==0){
                try {
                    zipOutputStream.putNextEntry(new ZipEntry(file.getAbsolutePath().substring(3,file.getAbsolutePath().length())+"/"));
                    zipOutputStream.closeEntry();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }else {
                for (File file2:files) {
                    toZip(file2);
                }
            }
        }
    }
}

java.io包和java.nio包

Java中I/O相關(guān)的兩個包是java.io和java.nio,它們的最重要的區(qū)別就是java.io里面的類是面向流的(stream oriented),java.nio里面的類是面向緩存的(buffer oriented)。

面向流意味著一次讀取一個或者一些字節(jié),然后處理這些字節(jié),在讀取和處理這些字節(jié)時當(dāng)前線程是阻塞的,不能干其他事情。

面向緩存意味著把一些字節(jié)讀到緩存里面,選擇了讀取的字節(jié)之后當(dāng)前線程可以去做其他事情,以后再去處理緩存里面的字節(jié)也可以,也就是線程非阻塞。

總結(jié)

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

相關(guān)文章

  • springboot+dubbo+zookeeper的簡單實例詳解

    springboot+dubbo+zookeeper的簡單實例詳解

    本文主要介紹了springboot+dubbo+zookeeper的簡單實例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 使用SpringBoot自定義starter詳解

    使用SpringBoot自定義starter詳解

    這篇文章主要介紹了使用Spring Boot自定義starter詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好地幫助喲,需要的朋友可以參考下
    2021-05-05
  • java數(shù)組元素的引用實例講解

    java數(shù)組元素的引用實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于java數(shù)組元素的引用實例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • spring 自動裝配和aop的使用

    spring 自動裝配和aop的使用

    這篇文章主要介紹了spring 自動裝配和aop的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • hibernate存取json數(shù)據(jù)的代碼分析

    hibernate存取json數(shù)據(jù)的代碼分析

    這篇文章主要介紹了hibernate存取json數(shù)據(jù)的代碼分析,需要的朋友可以參考下
    2017-09-09
  • Spring Boot打包部署和環(huán)境配置詳解

    Spring Boot打包部署和環(huán)境配置詳解

    這篇文章主要介紹了Spring Boot打包部署和環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • jdbc連接數(shù)據(jù)庫實例詳解

    jdbc連接數(shù)據(jù)庫實例詳解

    在本篇內(nèi)容里小編給大家分享了關(guān)于jdbc如何連接數(shù)據(jù)庫的相關(guān)知識點內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • java中的各種修飾符作用及范圍

    java中的各種修飾符作用及范圍

    這篇文章主要介紹了java中的各種修飾符作用及范圍,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot整合EasyExcel的完整過程記錄

    SpringBoot整合EasyExcel的完整過程記錄

    easyexcel是阿里巴巴旗下開源項目,主要用于Excel文件的導(dǎo)入和導(dǎo)出處理,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合EasyExcel的完整過程,需要的朋友可以參考下
    2021-12-12
  • Java項目全面升級轉(zhuǎn)化經(jīng)驗(涉及JDK、Spring?boot版本及依賴管理架構(gòu))

    Java項目全面升級轉(zhuǎn)化經(jīng)驗(涉及JDK、Spring?boot版本及依賴管理架構(gòu))

    在軟件開發(fā)領(lǐng)域,項目升級是一個必然的過程,隨著技術(shù)的不斷進步和業(yè)務(wù)需求的變化,對于舊項目的升級和優(yōu)化已成為許多企業(yè)必須面對的問題,這篇文章主要介紹了Java項目全面升級轉(zhuǎn)化的相關(guān)資料,包括JDK、Spring?boot版本及依賴管理架構(gòu),需要的朋友可以參考下
    2025-09-09

最新評論

湘阴县| 永登县| 集贤县| 耒阳市| 洞头县| 阿鲁科尔沁旗| 安新县| 清河县| 庄河市| 防城港市| 临桂县| 沛县| 三河市| 开江县| 万安县| 宁蒗| 彭泽县| 乌海市| 酉阳| 南雄市| 容城县| 肃宁县| 孙吴县| 竹溪县| 鲁甸县| 奈曼旗| 唐河县| 鄂温| 林甸县| 高淳县| 长乐市| 仁化县| 江山市| 上杭县| 太谷县| 大安市| 仪征市| 扶绥县| 张家界市| 惠水县| 夏津县|