Java 常用的工具接口包括文件压缩,解压缩,IP转换,文件删除(解决中文问题) ....

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Enumeration;
import org.apache.log4j.Logger;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;
import com.captech.lang.ErrorType;
import com.captech.ws.rs.WebApplicationException;
public class CommonUtils {
	
	protected static Logger logger = Logger.getLogger(CommonUtils.class);
	
	public static long getStringIpToLong(String ip) {
		ip = ip.trim();
		String[] ips = ip.split("[.]");
		long num = 16777216L * Long.parseLong(ips[0]) + 65536L
				* Long.parseLong(ips[1]) + 256 * Long.parseLong(ips[2])
				+ Long.parseLong(ips[3]);
		return num;
	}
	
    public static String longToIP(long longIp) {   
        StringBuffer sb = new StringBuffer("");   
        sb.append(String.valueOf((longIp >>> 24)));   
        sb.append(".");   
        sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));   
        sb.append(".");   
        sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));   
        sb.append(".");   
        sb.append(String.valueOf((longIp & 0x000000FF)));   
        return sb.toString();   
    }
    
    public static File zipFiles (String filePath, String zipname){
		FileOutputStream fos=null;
		ZipOutputStream zipOut=null;
		File fileList = new File(filePath);
		if(fileList.exists() && fileList.isDirectory()){
			File[] files=fileList.listFiles();
			try {
				 File out = new File(zipname);
				 if(!out.exists()){
					  out.createNewFile();
				 }
				 fos = new FileOutputStream(out);//创建文件输出流(低级流)
				 zipOut = new ZipOutputStream(fos);//创建zip文件输出流
		         zipOut.setEncoding("gbk");
		         int i = 0;
		         for (i = 0; i < files.length; i++) {
		        	  writeFile(files[i], zipOut, "");
		         }
		         zipOut.close();
		         return out;
			 }catch(IOException e){
				 throw createAndLogException(ErrorType.FILE_WRITE_ERROR, e);
			 }
		}else{
			  	 throw createAndLogException(ErrorType.FILE_OPEN_ERROR, new Exception("file Not exist"));
		}
    }
    
    public static void writeFile(File file, ZipOutputStream zipOut, String base){
    	try {
    		if(file.isDirectory()){
    			File[] files = file.listFiles();
    			base = base + file.getName() + File.separator;
    			zipOut.putNextEntry(new ZipEntry(base));
    			for (int i = 0; i < files.length; i++) {
    				writeFile(files[i], zipOut, base);
    			}
    		}else{
    			base = base + file.getName();
    			BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(file),"ISO8859_1"));  
    			ZipEntry ze = new ZipEntry(base);
    			zipOut.putNextEntry(ze);
    			int c = 0;
    			while ((c = in.read()) != -1) {
    			    zipOut.write(c);
    			}
    			in.close();
    		}
		} catch(Exception e){
	    	 throw createAndLogException(ErrorType.FILE_WRITE_ERROR, e);
	    }
    }
  
  //删除文件夹的接口
	public static boolean deleteDirectory(File file){
		if( file.exists() ) {   
		      File[] files = file.listFiles();   
		      for(int i=0; i<files.length; i++) {   
		         if(files[i].isDirectory()) {   
		           deleteDirectory(files[i]);   
		         }   
		         else {   
		           files[i].delete();   
		         }   
		   }   
		}   
		return( file.delete());
	}
  
  //复制文件的接口
	public  static void copyFile(File sourceFile,File targetFile) { 
      // 新建文件输入流并对它进行缓冲 
	  try {
	  		if(!targetFile.getParentFile().exists()){
	  			targetFile.getParentFile().mkdir();
	  		}
	  		if(!targetFile.exists()){
	  			targetFile.createNewFile();
	  		}
				FileInputStream input = new FileInputStream(sourceFile); 
				BufferedInputStream inBuff=new BufferedInputStream(input); 
	
				// 新建文件输出流并对它进行缓冲 
				FileOutputStream output = new FileOutputStream(targetFile); 
				BufferedOutputStream outBuff=new BufferedOutputStream(output); 
				 
				// 缓冲数组 
				byte[] b = new byte[1024 * 5]; 
				int len; 
				while ((len =inBuff.read(b)) != -1) { 
				    outBuff.write(b, 0, len); 
				} 
				// 刷新此缓冲的输出流 
				outBuff.flush(); 
				 
				//关闭流 
				inBuff.close(); 
				outBuff.close(); 
				output.close(); 
				input.close();
			} catch (Exception e) {
				throw createAndLogException(ErrorType.FILE_WRITE_ERROR, e);
		} 
	}
	
	@SuppressWarnings("unchecked")
	public static void unzipFile(String unzipfile, String outputDirectory){
		try {
			ZipFile zipFile = new ZipFile(unzipfile,"GBK");
			ZipEntry entry;
			// 创建文件夹
			Enumeration<ZipEntry> e = zipFile.getEntries();
			while (e.hasMoreElements()) {
				entry = e.nextElement();
				String name = entry.getName();
				if (!name.endsWith(File.separator)) {
					File f = new File(outputDirectory + File.separator + entry.getName());
					if (!f.getParentFile().exists()) {
						f.getParentFile().mkdirs();
					}
					InputStream in = zipFile.getInputStream(entry);
					FileOutputStream out = new FileOutputStream(f);
					int c;
					byte[] by = new byte[1024];
					while ((c = in.read(by)) != -1) {
						out.write(by, 0, c);
					}
					out.close();
					in.close();
				}
			}
			zipFile.close();
		} catch (IOException e) {
			createAndLogException(ErrorType.FILE_OPEN_ERROR, new Throwable("unzip file error"));
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值