JAVA 程序中如何实现对RAR压缩包文件中文件格式的判断?

JAVA 程序中如何实现对RAR压缩包文件中文件格式的判断?,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

JAVA 程序中如何实现对RAR压缩包文件文件格式的判断?

解析:

JAVA中使用java.util.zip.ZipOutputStream在对文件进行压缩时,将把每一个文件实体封装为java.util.zip.ZipEntry,反之,在使用java.util.zip.ZipInputStream在对文件进行解压缩时,每个文件的访问也是通过访问ZipEntry对象来 *** 作的,可以通过ZipEntry对象的getName()来得到当初压缩时对该文件的命名(通常为该文件相对路径),当然得到了该文件命名自然就可以对文件格式进行判断了!

可以,压缩只是一种算法,什么语言都可以,比如某种格式的文件中1001010(二进制)代表汉子的"中"字,那么压缩算法就是在编码不冲突的情况下可以改变编码长度,比如压缩之后中字变成1010,这样就节省空间了,这是我随便举的例子,具体的对应算法可以网上查

java中有zip包,可以使用

public void getZipFiles(String zipFile, String destFolder) throws IOException {

    BufferedOutputStream dest = null

    ZipInputStream zis = new ZipInputStream(

                                       new BufferedInputStream(

                                             new FileInputStream(zipFile)))

    ZipEntry entry

    while (( entry = zis.getNextEntry() ) != null) {

        System.out.println( "Extracting: " + entry.getName() )

        int count

        byte data[] = new byte[BUFFER]

        if (entry.isDirectory()) {

            new File( destFolder + "/" + entry.getName() ).mkdirs()

            continue

        } else {

            int di = entry.getName().lastIndexOf( '/' )

            if (di != -1) {

                new File( destFolder + "/" + entry.getName()

                                             .substring( 0, di ) ).mkdirs()

            }

        }

        FileOutputStream fos = new FileOutputStream( destFolder + "/"

                                                     + entry.getName() )

        dest = new BufferedOutputStream( fos )

        while (( count = zis.read( data ) ) != -1) 

            dest.write( data, 0, count )

        dest.flush()

        dest.close()

    }

}

rar的只能用第三方api,比如junrar

https://github.com/edmund-wagner/junrar


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11523973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存