Kotlin学习笔记 —— 使用Zip包实现文件压缩

前言

今天在写Kotlin的时候遇到一个需求,怎么在Kotlin里面实现文件的压缩呢?

经过百度搜索以及自己探索,总结了该篇文章

技术实现

ZipOutStream

见名思意:Zip的输出流

我们看看它的构造方法

    public ZipOutputStream(OutputStream out) {
        this(out, StandardCharsets.UTF_8);
    }

传递一个OutPutStream流,那么我们传入FileOutPutStream流

var targetZip = ZipOutputStream(FileOutputStream(zipPath))

输出流我们有了,那如何将相关文件进行压缩呢?

很简单,我们可以尝试以下方式

代码示例

            var zipPath = "UPLOAD_PATH\\name.zip"
            var dirFile = File("UPLOAD_PATH\\dirName")
            var targetZip = ZipOutputStream(FileOutputStream(zipPath))
            targetZip.setLevel(9)
            for(file in dirFile.listFiles()){
                var bytes = file.readBytes()
                var name = file.name
                targetZip.putNextEntry(ZipEntry("dirName\\name"))
                targetZip.write(bytes)
                targetZip.flush()
            }
            targetZip.close()

setLevel 设置压缩等级

putNextEntry 添加下一个键

ZipEntry Zip的键 这里可以当作:压缩文件中的文件名 ( 键值可以添加目录)

感谢观看!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇