一.简单文件压缩,解压 package cn.edu.nju.vicken; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; /** */ /** * * @author VickenYang * 文件处理工具 */ public class FileProcessor ... { public static void createZipFile(File from,File to) throws Exception ...{ if(!from.isFile())...{ throw new Exception("file not exists"+from.getAbsolutePath()); } if(to.isFile())...{ throw new Exception("file already exists"+to.getAbsolutePath()); } else...{ to.createNewFile(); } ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(to)); ZipEntry ze = null; byte[] buf = new byte[1024]; int readLen = 0; ze = new ZipEntry(from.getAbsolutePath()); ze.setSize(from.length()); ze.setTime(from.lastModified()); zos.putNextEntry(ze); InputStream is = new BufferedInputStream(new FileInputStream(from)); while ((readLen=is.read(buf, 0, 1024))!=-1) ...{ zos.write(buf, 0, readLen); } is.close(); zos.close(); } public static void decompressZipFile(File from,File to) throws Exception...{ if(!from.isFile())...{ throw new Exception("file not exists"+from.getAbsolutePath()); } if(!to.isDirectory())...{ throw new Exception("file not directory"+to.getAbsolutePath()); } ZipFile zfile = new ZipFile(from.getAbsoluteFile()); Enumeration zList = zfile.entries(); ZipEntry ze=null; byte[] buf=new byte[1024]; while(zList.hasMoreElements())...{ ze=(ZipEntry)zList.nextElement(); if(ze.isDirectory())...{ continue; } String[] zet = ze.getName().replace('/', '/').split("/"); OutputStream os=new BufferedOutputStream(new FileOutputStream(to.getAbsoluteFile()+zet[zet.length-1])); InputStream is=new BufferedInputStream(zfile.getInputStream(ze)); int readLen=0; while ((readLen=is.read(buf, 0, 1024))!=-1) ...{ os.write(buf, 0, readLen); } is.close(); os.close(); } zfile.close(); }} 二.定时器程序 import java.util.Timer; import java.util.TimerTask; class MyTask extends TimerTask ... { String name; public MyTask(String name)...{ this.name = name; } public void run()...{ System.out.println(name); }} public class TestTask ... { public static void main(String[] args) ...{ // TODO Auto-generated method stub TimerTask task = new MyTask("10秒执行一次"); java.util.Date today = new java.util.Date(); //开始时间设置为昨天 java.util.Date beginTime = new java.util.Date(today.getYear(),today.getMonth(),today.getDate()-1,22,0,0); //10秒一次 new Timer().schedule(task,beginTime,1000*10); //执行一次 task = new MyTask("只执行一次"); new Timer().schedule(task,beginTime); }} 三.分割,合并文件 // 拆分文件 public static void splitFile(File file, int size) throws Exception ... { if(size<=0)...{ size = 1024; } if(!file.isFile())...{ throw new Exception("file not exists"+file.getAbsolutePath()); } String filename = file.getAbsolutePath(); File filetmp = new File(filename+"_"+0+".vk"); if(filetmp.isFile())...{ throw new Exception("file exists"+filetmp.getAbsolutePath()); } byte[] buf = new byte[1024*10]; FileInputStream fis = new FileInputStream(file); int readsize = 0; int pos = 0; int k = 0; int m = -1; File fileout = null; FileOutputStream fos = null; while((readsize = fis.read(buf, 0, buf.length))>0)...{ if(k!=m) ...{ if(fos!=null)...{ fos.close(); fos = null; } m = k; fileout = new File(filename+"_"+k+".vk"); fos = new FileOutputStream(fileout); } fos.write(buf,0,readsize); fos.flush(); pos += readsize; if(pos>size*(k+1))...{ k++; } } if(fos!=null)...{ fos.close(); fos = null; } fis.close(); } // 合并文件 public static void combination(File file) throws Exception ... { String filename = file.getAbsolutePath(); File fileout = new File(filename); if(fileout.isFile())...{ throw new Exception("file exists"+fileout.getAbsolutePath()); } FileOutputStream fos = new FileOutputStream(fileout); int k = 0; File filein = null; FileInputStream fis = null; byte[] buf = new byte[1024*10]; while(true)...{ if(fis!=null)...{ fis.close(); fis = null; } filein = new File(filename+"_"+k+".vk"); if(!filein.isFile())...{ break; } fis = new FileInputStream(filein); int readsize = 0; while((readsize = fis.read(buf, 0, buf.length))>0)...{ fos.write(buf,0,readsize); fos.flush(); } k++; } if(fis!=null)...{ fis.close(); fis = null; } fos.close(); }