`

java.io.IOException: Error detected parsing the header

    博客分类:
  • JAVA
阅读更多

今天在用commons-compress-1.9.jar  做tar解压时在while((entry = tar.getNextEntry())!=null){  出发生异常。异常内容:java.io.IOException: Error detected parsing the header和cause by:java.lang.IllegalArgumentException: Invalid byte 46 at offset 2 in '01.pdf{NUL}�' len=8

检查原因是由于tar文件并不是真正的在linux环境中生成的,而是在windows生成的,所以要处理这个问题,只需要在linux重新tar一次即可。

这里做个记录,以免忘记

public boolean deArchiveFile(File sourcefile,String destPath){
		TarArchiveInputStream tar = null;
		TarArchiveEntry entry = null;
		BufferedOutputStream bos = null;
		try {
			tar = new TarArchiveInputStream(new FileInputStream(sourcefile));
			File destFileDir = new File(destPath);
			if(!destFileDir.exists()){
				destFileDir.mkdir();
			}
			while((entry = tar.getNextTarEntry())!=null){
				if(entry.isDirectory()){
					if(mkNewDir(destPath,entry.getName())){
//						destPath=destPath+File.separator+entry.getName();
					}
				}else{
					try{
						byte b[] = new byte[BUFFER_MAX_SIZE];
						bos = new BufferedOutputStream(new FileOutputStream(destPath+File.separator+entry.getName()),BUFFER_MAX_SIZE);
						int count = 0;
						while((count = tar.read(b, 0, BUFFER_MAX_SIZE))!=-1){
							bos.write(b, 0, count);
						}
					}finally{
						bos.flush();
						bos.close();
					}
					
				}
			}
			return true;
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			if(bos!=null){
				try {
					bos.flush();
					bos.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return false;
	}

 

分享到:
评论

相关推荐

    解决删除目录提示:System.IO.IOException: 目录不是空的。

    在编程过程中,尤其是在使用C#进行文件系统操作时,可能会遇到这样一个问题:当你尝试删除一个目录,系统返回“System.IO.IOException: 目录不是空的”错误。这意味着该目录下仍有文件或子目录存在,因此无法直接...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    java.security.InvalidKeyException:illegal Key Size

    在Java编程环境中,"java.security.InvalidKeyException: illegal Key Size" 是一个常见的错误,通常发生在加密或解密操作中。这个错误表示你试图使用的密钥长度超过了Java默认的安全限制。在给定的上下文中,这个...

    Eclipse 进行 ANT 时错误 Javadoc failed java.io.IOException Cannot run program javadoc

    Eclipse 进行 ANT 时错误 Javadoc failed java.io.IOException Cannot run program javadoc

    UnlimitedJCEPolicyJDK8.rar

    java安装路径Java\jre\lib\security下替换这两个架包,即可解决 java.security.cert.CertificateException: Unable to initialize, java.io.IOException: Short read of DER length

    JSP上传图片产生 java.io.IOException: Stream closed异常解决方法

    把 java 代码直接改成 jsp,上传时产生 如下异常: 2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception java.io.IOException: ...

    报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.-附件资源

    报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.-附件资源

    elasticsearch-rest-client-6.5.4-cus.jar

    针对java.io.IOException: entity content is too long [180278508] for the configured buffer limit [157286400]异常,将 DEFAULT_BUFFER_LIMIT修改为150M

    jenkins所需的插件等

    1. **安装 Java**:Jenkins 需要 Java 运行环境,确保系统已安装最新版的 JDK。 2. **下载 Jenkins**:从官方网站获取适合 Linux 平台的 Jenkins 可执行文件。 3. **启动 Jenkins**:通过命令行启动 Jenkins,例如...

    Http-Multipart-Data请求

    Http-Multipart-Data-Parser-master,如需要http post接口开发、http post传文件等操作可以参考,源码的最原始地址忘记了,这个是从上面down下来新版,各位可参考

    jave-1.0.2-src.jar

    it.sauronsoftware.jave.EncoderException: java.io.IOException: Cannot run program "C:\Users\moxiao\AppData\Local\Temp\jave-1\ffmpeg.exe": CreateProcess error=740, 请求的操作需要提升。 在最新的liunx ...

    AndroidApk混淆编译时,报告java.io.IOException…错误解决办法

    Java.io.IOException: The same input jar [E:\Android\myProgram\angel\libs\alipaySdk-20160825.jar] is specified twice. 首先 看一下我项目中关于此jar的配置,我在libs中导入了alipaySdk-20160825.jar,

    BasicAuth2.java

    java.io.IOException: Server returned HTTP response code: 403 for URL 处理过程记录 BASIC AUTH2 POST接口,解决403问题

    最最常用的 100 个 Java类分享

    2. `java.io.IOException`:这是所有I/O异常的基类,用于处理输入/输出操作中的错误。 3. `java.util.List`:List接口定义了有序的集合,允许有重复元素,并提供了按索引访问的方法。 4. `java.util.HashMap`:...

    annotations.zip

    Android Build 时报错: java.io.IOException: Could not parse XML from android/accounts/annotati...Android构建时报错: app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “name” ...

    hadoop1.0 Failed to set permissions of path 解决方案

    ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-admin \mapred\local\ttprivate to 0700 at org.apache...

    修正版AXMLPrinter2

    android 二进制xml 解析。AXMLPrinter2反编译的时候报错解决

    java keytool安全证书学习

    Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...

    rxtx-2.1.7.jar串口通信gnu.io包不存在问题

    在Java编程环境中,进行串口通信时,常常会遇到一个问题:缺少`gnu.io`包,导致无法正常编译或运行程序。这个问题主要出现在使用RXTX库进行串口操作的项目中。RXTX是一个开源的Java库,它提供了与硬件进行串行通信的...

Global site tag (gtag.js) - Google Analytics