java自带有文件解压缩的功能,但很多人都不用,都说其不支持中文。但我只想说,那是他们没有去深入了解java。
现在就说文件的解压功能,使用java自带的zip操作类,支持中文。
public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { //配置文件 // FileConfigUtil configUtil = FileConfigUtil.getInstance(); // configUtil.loadFileConfigUtil("D:\\file-upload.properties"); // FileConfigUtil.getFileUploadConfig(); //zip文件解压 ParseZipFile zipFile = new ParseZipFile(); String zipFilePath = "D:/test/错误图片数据.zip"; String outFilePath = "D:/新建文件夹"; zipFile.parseZipFile(zipFilePath, outFilePath); }
public void parseZipFile(String zipFilePath,String outFilePath){ if(zipFilePath == null || zipFilePath.isEmpty() || outFilePath == null || outFilePath.isEmpty()){ return null; }else{ try { //转化为iso_8859_1,用于解压,如若包含中文,会生成失败。 ZipFile zipFile = new ZipFile(zipFilePath,StandardCharsets.ISO_8859_1); ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(zipFilePath)),StandardCharsets.ISO_8859_1); ZipEntry zipEntry; while ((zipEntry = in.getNextEntry()) != null) { if(!zipEntry.isDirectory()){ File file = new File(outFilePath + "/" + new String(zipEntry.getName().getBytes( StandardCharsets.ISO_8859_1), "gbk")); System.out.println(file.getName()); if(!file.exists()) { if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); InputStream is = zipFile.getInputStream(zipEntry); int readLen = 0; byte[] buffer = new byte[1024 * 8]; while ((readLen = is.read(buffer, 0, 1024 * 8)) != -1){ out.write(buffer, 0, readLen); } out.close(); is.close(); } } in.close(); zipFile.close(); } catch (IOException e) { e.printStackTrace(); } return null; } }
其实在以前的文章中就提过,java本身转换的字符到底是什么格式,很难说。
但在这里,先转化为iso8859然后,再转回gbk。如果转换为utf-8的话,可能会出现乱码。
所以大致可以猜测,在文件这一块,java也许使用的并不是utf-8。
当然,这只是可能。
不过,还是那句话,java的很多定义不可能是无厘头写上去的。只要去深入研究,你会发现解决方法的。
相关推荐
沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...
java rar解压工具类 // 第一个参数是需要解压的压缩包路径,第二个参数参考JdkAPI文档的RandomAccessFile //r代表以只读的方式打开文本,也就意味着不能用write来操作文件
### Java反编译工具:将.class文件转换为.java文件 #### 概述 在软件开发领域,有时我们可能需要分析第三方库或者开源项目的内部结构,这时就需要借助于反编译工具来帮助我们阅读和理解其源码。Java作为一种广泛...
【JCOP Eclipse javacard 插件】是一个专为Eclipse集成开发环境设计的扩展工具,主要用于支持Java Card应用的开发、调试和测试。Java Card技术是Sun Microsystems(现为Oracle)推出的一种在智能卡、SIM卡等微型设备...
Eclipse作为一款广泛使用的Java集成开发环境(IDE),提供了一系列的插件来增强其功能,其中包括对.properties文件的编辑支持。 标题提到的"个人在用的java属性文件编辑Eclipse插件"是一个专为Eclipse设计的工具,...
2. **解压下载文件**:将下载的压缩包文件“Java反编译插件”解压,里面通常包含一个.jar文件和一些配置文件。 3. **复制jar文件**:将解压后的.jar文件(如jadclipse.jar)复制到MyEclipse的plugins目录下。 4. *...
通常,解压后会包含一个jar文件,如`jacob.jar`,它包含了JACOB的所有Java类。同时,可能会有一个dll文件,如`jacob.dll`,这是与特定操作系统版本兼容的本地库,需要放在系统路径中才能正确运行。 为了将Word转换...
压缩包--Java解压zip文件完整代码分享,使用java代码完成解压zip文件
Eclipse作为广泛使用的Java集成开发环境(IDE),有多种插件可以支持对`.class`文件进行反编译。本主题将详细介绍一个专用于反编译Java `.class`文件的Eclipse插件,以及如何将其安装到Eclipse环境中。 反编译是将...
安装过程相对简单,只需将压缩包中的文件解压到Eclipse的插件目录。Eclipse的插件目录通常位于"Eclipse安装路径/plugins"下,但根据不同的操作系统和Eclipse安装方式可能会有所不同。解压前,确保Eclipse已经关闭,...
java,JAVA源码Java用GZIP压缩解压文件JAVA源码Java用GZIP压缩解压文件
阿里巴巴Java开发规范插件是专为Java开发者设计的一款工具,旨在提高代码质量和开发效率,遵循阿里巴巴内部制定的一系列编码标准和最佳实践。这个Eclipse离线安装包是为了解决那些无法连接到互联网或者内网环境下的...
基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩解压文件.zip 基于java的开发源码-用GZIP压缩...
Jad 是一个知名的Java反编译工具,它可以帮助我们查看并理解Java类文件的内部结构。本文将深入探讨Jad的使用以及与之配合的Eclipse插件JadClipse的配置方法。 首先,Jad 是由JAD Software开发的一款强大的Java反...
3. **放置插件文件**:将解压后的所有文件和文件夹移动或复制到`dropins`目录下。这些文件通常包含`.jar`格式的库文件,它们是插件的核心组件。 4. **重启MyEclipse**:完成上述步骤后,你需要重启MyEclipse,以便...
本Java.Tomcat.zip插件解压后,将提供一个完整的Tomcat运行环境,使得开发者可以便捷地进行Web应用程序的部署和调试。 首先,我们来了解一下Tomcat的核心功能。Tomcat作为Servlet容器,主要负责解析HTTP请求,调用...
《阿里巴巴Java开发规范插件Eclipse离线安装详解》 在Java开发中,遵循一套统一的编码规范至关重要,它能够提高代码的可读性,降低维护成本,提升团队协作效率。阿里巴巴作为中国领先的互联网企业,推出了针对Java...
标签中的"java eclipse 语言包 中文插件包 JAVA语言包"进一步强调了这个插件包主要服务于Java开发者,它不仅适用于Eclipse,也适用于处理Java语言的开发工作。对于那些英语不是母语的开发者而言,这款插件包极大地...