android Raw读取JAR资源打包文件

private InputStream Raw_inputstream;
private JarInputStream Jar_inputstream;
private HashMap SourcesMap;

SourcesMap = new HashMap();
Raw_inputstream = this.getResources().openRawResource(R.raw.src); 
try {	
	Jar_inputstream = new JarInputStream(Raw_inputstream); 	
	while(true){ 		
		JarEntry zentry = Jar_inputstream.getNextJarEntry(); 		
		if(zentry == null) { 			
			Jar_inputstream.closeEntry(); 			
			break; 		
		}		
		if(!zentry.isDirectory()){ 			
			Vector ve_data = new Vector(); 			
			int data_len = 0; 			
			while(true) { 				
				byte[] bytes = new byte[1024]; 				
				int len = Jar_inputstream.read(bytes, 0, bytes.length); 				
				if(len == -1) { 					
					break; 				
				} 				
				byte[] sjbytes = new byte[len]; 				
				System.arraycopy(bytes, 0, sjbytes, 0, len); 				
				ve_data.add(sjbytes); 				
				data_len = data_len + sjbytes.length; 			
			} 			
			int size = ve_data.size(); 			
			int n = 0; 			
			int dstPos = 0; 			
			byte[] data = new byte[data_len]; 			
			while(n<size) { 				
				System.arraycopy(ve_data.get(n), 0, data, dstPos, ve_data.get(n).length); 				
				dstPos = dstPos + ve_data.get(n).length; n++; 			
			} 			
			ve_data.clear();			
			SourcesMap.put(zentry.getName(), data);		
		}		
		Jar_inputstream.closeEntry();	
	}
} catch (IOException e) {	
	e.printStackTrace();
}


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值