- 浏览: 978278 次
- 性别:
- 来自: 山西
文章分类
最新评论
-
白小默:
你好 可以提供下源码DEMO吗,不知为何,我导出来的excel ...
jxls 使用模板文件导出生成excel -
zkzqzzz:
博主威武!
让微信二维码扫描您的APK -
zkzqzzz:
感谢博主 原来那些类都不是必须的 或者自己写!!博主真棒 ...
抢红包插件实现原理浅析 -
zkzqzzz:
博主 请问你的其他类在哪里呢?
抢红包插件实现原理浅析 -
zkzqzzz:
其他类在哪呢?
抢红包插件实现原理浅析
01. 前几天写了文章介绍java文件夹的压缩(见http://zwllxs.javaeye.com/blog/836483),但是发现一个问题,在linux下,如果文件夹内的文件是中文名,那么压缩后,这些文件名全部成为了乱码而无法解压,要能支持linux压缩,有两点: 02.1:再压缩前,要设置linux模式, 03. 如果是文件目录,则 04.Java代码 05.ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator")); 06.zipEntry.setUnixMode(755);//解决linux乱码 07. 08.ZipEntry zipEntry=new ZipEntry(basePath + System.getProperties().getProperty("file.separator")); 09.zipEntry.setUnixMode(755);//解决linux乱码 10.如果是文件,则 11.Java代码 12.ZipEntry zipEntry=new ZipEntry(base); 13. zipEntry.setUnixMode(644);//解决linux乱码 14. 15.ZipEntry zipEntry=new ZipEntry(base); 16. zipEntry.setUnixMode(644);//解决linux乱码 17. 18.然后在输出时强制设置编码: 19.Java代码 20.ZipOutputStream out = new ZipOutputStream(new FileOutputStream( 21. zipFileName)); 22. out.setEncoding("GBK");//解决linux乱码 23. 24. ZipOutputStream out = new ZipOutputStream(new FileOutputStream( 25. zipFileName)); 26. out.setEncoding("GBK");//解决linux乱码 27. 28.全部代码如下: 29. 30.Java代码 31.import java.io.File; 32.import java.io.FileInputStream; 33.import java.io.FileOutputStream; 34.import java.io.OutputStream; 35. 36.import org.apache.tools.zip.ZipEntry; 37.import org.apache.tools.zip.ZipOutputStream; 38. 39./** 40. * 文件夹压缩,支持win和linux 41. * @author wlzhang 42. * 43. */ 44.public class ZipUtil 45.{ 46. /** 47. * @param inputFileName 48. * 输入一个文件夹 49. * @param zipFileName 50. * 输出一个压缩文件夹,打包后文件名字 51. * @throws Exception 52. */ 53. public static OutputStream zip(String inputFileName, String zipFileName) throws Exception 54. { 55. return zip(zipFileName, new File(inputFileName)); 56. } 57. 58. private static OutputStream zip(String zipFileName, File inputFile) throws Exception 59. { 60. ZipOutputStream out = new ZipOutputStream(new FileOutputStream( 61. zipFileName)); 62. out.setEncoding("GBK");//解决linux乱码 63. zip(out, inputFile, ""); 64. out.close(); 65. return out; 66. } 67. 68. private static void zip(ZipOutputStream out, File f, String base) throws Exception 69. { 70. if (f.isDirectory()) 71. { // 判断是否为目录 72. File[] fl = f.listFiles(); 73. // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/")); 74.// out.putNextEntry(new ZipEntry(base + "/")); 75. ZipEntry zipEntry=new ZipEntry(base + System.getProperties().getProperty("file.separator")); 76. zipEntry.setUnixMode(755);//解决linux乱码 77. out.putNextEntry(zipEntry); 78.// base = base.length() == 0 ? "" : base + "/"; 79. base = base.length() == 0 ? "" : base + System.getProperties().getProperty("file.separator"); 80. for (int i = 0; i < fl.length; i++) 81. { 82. zip(out, fl[i], base + fl[i].getName()); 83. } 84. } 85. else 86. { // 压缩目录中的所有文件 87. // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base)); 88. ZipEntry zipEntry=new ZipEntry(base); 89. zipEntry.setUnixMode(644);//解决linux乱码 90. out.putNextEntry(zipEntry); 91. FileInputStream in = new FileInputStream(f); 92. int b; 93. while ((b = in.read()) != -1) 94. { 95. out.write(b); 96. } 97. in.close(); 98. } 99. } 100.} 101. 102.import java.io.File; 103.import java.io.FileInputStream; 104.import java.io.FileOutputStream; 105.import java.io.OutputStream; 106. 107.import org.apache.tools.zip.ZipEntry; 108.import org.apache.tools.zip.ZipOutputStream; 109. 110./** 111. * 文件夹压缩,支持win和linux 112. * @author wlzhang 113. * 114. */ 115.public class ZipUtil 116.{ 117. /** 118. * @param inputFileName 119. * 输入一个文件夹 120. * @param zipFileName 121. * 输出一个压缩文件夹,打包后文件名字 122. * @throws Exception 123. */ 124. public static OutputStream zip(String inputFileName, String zipFileName) throws Exception 125. { 126. return zip(zipFileName, new File(inputFileName)); 127. } 128. 129. private static OutputStream zip(String zipFileName, File inputFile) throws Exception 130. { 131. ZipOutputStream out = new ZipOutputStream(new FileOutputStream( 132. zipFileName)); 133. out.setEncoding("GBK");//解决linux乱码 134. zip(out, inputFile, ""); 135. out.close(); 136. return out; 137. } 138. 139. private static void zip(ZipOutputStream out, File f, String base) throws Exception 140. { 141. if (f.isDirectory()) 142. { // 判断是否为目录 143. File[] fl = f.listFiles(); 144. // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/")); 145.// out.putNextEntry(new ZipEntry(base + "/")); 146. ZipEntry zipEntry=new ZipEntry(base + System.getProperties().getProperty("file.separator")); 147. zipEntry.setUnixMode(755);//解决linux乱码 148. out.putNextEntry(zipEntry); 149.// base = base.length() == 0 ? "" : base + "/"; 150. base = base.length() == 0 ? "" : base + System.getProperties().getProperty("file.separator"); 151. for (int i = 0; i < fl.length; i++) 152. { 153. zip(out, fl[i], base + fl[i].getName()); 154. } 155. } 156. else 157. { // 压缩目录中的所有文件 158. // out.putNextEntry(new org.apache.tools.zip.ZipEntry(base)); 159. ZipEntry zipEntry=new ZipEntry(base); 160. zipEntry.setUnixMode(644);//解决linux乱码 161. out.putNextEntry(zipEntry); 162. FileInputStream in = new FileInputStream(f); 163. int b; 164. while ((b = in.read()) != -1) 165. { 166. out.write(b); 167. } 168. in.close(); 169. } 170. } 171.} 172. 173.以上代码就同时支持win和linux
发表评论
-
java通过sftp JSch 上传文件下载文件查看文件目录,测试可用
2019-12-19 18:19 987基于maven ... -
服务器之间的 zip 文件定时传送
2019-12-19 10:28 5261、expect 安装 将expect和tcl的软 ... -
Java/web/jsp根据pdf模板生成荣誉证书PDF文件
2019-07-19 14:48 9801.前言 最近博主在 ... -
Java生成荣誉证书PDF文件
2019-07-19 13:08 1401Java生成荣誉证书PD ... -
百度云API刷脸
2019-07-13 11:41 637刷脸登录是基于人工智能、生物识别、3D传感、大数据风控技术, ... -
maven--maven配置多个源文件夹
2019-06-13 21:32 937需求 Maven 为我们提供了一致的项目目录配置(源文件 ... -
绿盟检测出“检测到目标URL存在http host头攻击漏洞”如何解决
2019-06-09 10:00 1019绿盟检测出“检测到目标URL存在http host头攻击漏 ... -
Linux安装apache及其简单的反向代理配置
2019-06-07 09:06 647Apache简介 Apache HTTP Se ... -
Linux二进制安装apache2.4.25
2019-06-07 09:06 720Linux二进制安装apache2.4. ... -
weblogic配置https,http自动跳转转https,ssl
2019-05-21 09:44 960最近,公司要求将http ... -
bootstrap-table组合表头
2019-03-06 10:04 921bootstrap-table组合表头 ... -
[Weblogic]如何清理缓存
2019-03-04 15:23 861[Weblogic]如何清理缓存 ... -
Guns第十节Swagger的讲解
2019-01-23 16:51 6532018年08月01日 15:54:30 ze ... -
Anaconda详细安装使用教程
2019-01-22 15:07 626关注微信公众号【Mi ... -
Windows系统下Eclipse上搭建Python开发环境
2019-01-22 15:00 332Windows系统下Eclipse上搭 ... -
Python 3.6 中使用pdfminer解析pdf文件
2019-01-22 14:50 937所使用python环境为最新 ... -
Python提取PDF内容(文本、图像、线条等)
2019-01-22 14:43 7551使用Python抽取PDF文件内 ... -
用python解析pdf中的文本与表格【pdfplumber的安装与使用】
2019-01-22 14:40 1540我们接触到的很多文档资料都是以pdf格式存在的,比如:论文, ... -
java实现PDF转HTML
2019-01-21 10:14 935java实现PDF转HTML 问题场景: ... -
JAVA PDFBOX 读取PDF表格
2019-01-18 17:39 2997最近在帮公司做工具,需要读取PDF中表格的数据。网上查了, ...
相关推荐
服务器是centos环境,jar包是跨平台的,但是dll不能,所以只能下载最新版的opencv源码,进行编译安装,并且打包成静态文件,大家只需要把libopencv_java451.so放到 java.library.path下面就行了
在Linux环境下,使用Java Swing开发的应用程序通常被打包成可执行的jar文件,便于分发和执行。然而,为了更好地适应Linux系统,尤其是国产化操作系统,开发者可能希望将jar包进一步封装成DEB(Debian Package)...
描述中提到,用户在下载这个文件后,会得到一个名为“linuxJava8_32.tar.gz”的tar.gz格式文件,这提示我们它采用的是双重压缩,首先用zip压缩,然后将zip文件再用tar打包。在Linux环境中,可以使用tar命令来解压这...
"tar.gz"是Linux中常见的文件打包和压缩格式,它结合了tar(用于打包多个文件到一个文件)和gzip(用于压缩文件)两种工具的功能。因此,我们需要使用相应的命令来处理这个文件。 1. **下载与验证**:通常,你可以...
然而,在Linux服务器部署场景中,则需要采取其他方式,即先将Java项目打包成JAR文件,再利用命令行来启动执行。 #### 打包Java项目为JAR文件 在Linux服务器上执行Java项目时,通常的做法是先将项目打包成JAR文件。...
在Linux上部署Java应用时,如果使用了GDAL,确保这些库文件在系统路径中可用或者与Java应用一起打包。对于动态链接库,可能需要设置`LD_LIBRARY_PATH`环境变量,以便系统能够找到它们。静态库则在编译时链接,不需要...
### 如何将Java程序打包成EXE文件 在软件开发领域,尤其是对于Java开发者来说,将Java程序打包成EXE文件是一种常见的需求。这不仅可以让程序在没有安装Java运行环境(JRE)的计算机上运行,还能提高程序的安全性和...
在使用install4j进行Java程序打包时,主要涉及以下几个步骤: 1. **安装与启动install4j**:首先,你需要从官方网站下载并安装install4j。安装完成后,启动install4j集成开发环境(IDE)。 2. **创建新项目**:...
- `jar`: 打包和管理Java档案文件的工具,常用于创建可执行的`.jar`文件。 - `jps`: 显示正在运行的Java进程。 - `jmap`: 用于生成堆转储文件和查看内存映射。 - `jhat`: 分析堆转储文件的命令行工具。 6. **...
这个文件的扩展名 ".tar.gz" 表明它是一个使用tar工具进行打包,并通过gzip进行压缩的文件,这是一种常见的在Linux和Unix系统中分发软件的方式。 在Linux环境中,用户通常会使用以下步骤来解压和安装这个文件: 1....
一个普通java程序用ant打包的列子,完整的,里面采用的是eclipse自带的编译插件进行的打包,需要结合eclipse中的插件一起使用
"Java项目和文件.zip"这个压缩包很可能包含了某个Java项目的源代码、编译后的文件以及运行所需的支持库。让我们详细解析一下这个压缩包中可能包含的内容。 1. **MyGame.jar**:这是一个Java Archive(JAR)文件,它...
在Java世界中,通过RPM打包可以使SpringBoot应用更便于在Linux环境下分发和管理。 2. **SpringBoot与RPM集成** SpringBoot是一个轻量级的Java框架,简化了微服务的开发和部署。将SpringBoot应用打包成RPM,首先...
5. **构建脚本**:如Ant或Maven的构建文件,用于编译和打包JavaSQLite库。 6. **配置文件**:可能包括针对ARMLINUX平台的特殊配置,比如启动脚本、系统服务配置等。 7. **许可证文件**:关于JavaSQLite的开源许可...
例如,`java -version`可以检查Java的安装版本,`javac HelloWorld.java`可以编译名为`HelloWorld.java`的源代码,`jar cvf HelloWorld.jar HelloWorld.class`则可以创建一个包含`HelloWorld.class`的JAR文件。...
这个压缩包文件“jdk1.8.0_311”就是对应的一个具体版本,其中包含了编译器、JRE(Java Runtime Environment)以及各种工具,如`javac`用于编译Java源代码,`jar`用于打包和管理类库,`javadoc`用于生成API文档等。...
这样的打包方式方便了开发者和系统管理员快速部署Java环境,特别是对于那些不熟悉Linux命令行操作的用户。 总结来说,"linux-java8.zip"是一个整合了Linux系统下Java 8开发环境的压缩包,其内容可能涵盖Java 8的JDK...