Posted on 2009-10-29 19:11
xcp 阅读(2012)
评论(0) 编辑 收藏 所属分类:
JAVA
package com.wepull.demo;
import java.io.*;
import java.util.zip.*;
/** *//**
* 对文件或者目录操作的类
* @version 1.0
* @author leno
*/
public class FileUtil {
private static void copy(File source, File target) throws IOException {
File tar = new File(target, source.getName());
if (source.isDirectory()) {
System.out.println("开始创建目录:" + tar.getPath());
tar.mkdir();
File[] fs = source.listFiles();
for (int i = 0; i < fs.length; i++) {
copy(fs[i], tar);
}
} else {
System.out.println("开始从" + source + "拷贝文件到" + tar.getPath());
InputStream is = new FileInputStream(source);
OutputStream os = new FileOutputStream(tar);
byte[] buf = new byte[1024];
int len = 0;
while ((len = is.read(buf)) != -1) {
os.write(buf, 0, len);
}
is.close();
os.close();
}
}
/** *//**
* 拷贝文件或者目录到某个指定的路径
*
* @param source
* 源文件或者目录
* @param target
* 目标路径
* @throws IOException
*/
public static void copy(String source, String target) {
File sour = new File(source);
File tar = new File(target);
try {
copy(sour, tar);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void delete(File file) {
if (file.isDirectory()) {
File[] fs = file.listFiles();
for (int i = 0; i < fs.length; i++) {
delete(fs[i]);
}
file.delete();
} else {
file.delete();
}
}
/** *//**
* 删除一个文件或者目录
*
* @param file
*/
public static void delete(String path) {
File file = new File(path);
delete(file);
}
/** *//**
* 压缩文件或者目录到指定的路径
*
* @param zipFileName
* 目标路径
* @param inputPath
* 被压缩的文件或者目录
*/
public static void zip(String zipFileName, String inputPath) {
File inputFile = new File(inputPath);
ZipOutputStream out;
try {
out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, inputFile.getName());
System.out.println("压缩完成!");
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void zip(ZipOutputStream out, File f, String base)
throws Exception {
System.out.println("正在压缩:" + f.getName() + " ");
if (f.isDirectory()) {
File[] fs = f.listFiles();
base += "/";
System.out.println("新建目录条目:" + f.getName());
out.putNextEntry(new ZipEntry(base)); // 生成相应的目录
for (int i = 0; i < fs.length; i++) {
// 对本目录下的所有文件对象递归调用本方法
zip(out, fs[i], base + fs[i].getName());
}
} else {
System.out.println("新增文件条目:" + f.getName());
out.putNextEntry(new ZipEntry(base));
InputStream is = new FileInputStream(f);
byte[] buf = new byte[1024];
int len = 0;
while ((len = is.read(buf)) != -1) {
out.write(buf, 0, len);
}
is.close();
}
}
/** *//**
* 解压缩zip文件到指定的路径
*
* @param zipfile
* zip格式压缩文件
* @param desPath
* 目标路径
*/
public static void unzip(String zipFile, String desPath) {
// 建立输出流,用于将从压缩文件中读出的文件流写入到磁盘
OutputStream out = null;
// 建立输入流,用于从压缩文件中读出文件
ZipInputStream is;
try {
is = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry entry = null;
while ((entry = is.getNextEntry()) != null) {
System.out.println("正在解压缩:" + entry.getName() + " ");
File f = new File(desPath + "\\" + entry.getName());
if (entry.isDirectory()) {
System.out.println("新建目录:" + f.getName());
f.mkdir();
} else {
System.out.println("新增文件:" + f.getName());
// 根据压缩文件中读出的文件名称新建文件
out = new FileOutputStream(f);
byte[] buf = new byte[1024];
int len = 0;
while ((len = is.read(buf)) != -1) {
out.write(buf, 0, len);
}
out.close();
}
}
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/** *//**
* 创建新文件
*
* @param path
*/
public static void createFile(String path) {
File file = new File(path);
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/** *//**
* 创建新目录
*
* @param path
*/
public static void createDir(String path) {
File file = new File(path);
file.mkdirs();
}
/** *//**
* 剪切文件或者目录到某个指定的路径
*
* @param source
* 源文件或者目录
* @param target
* 目标路径
*
*/
public static void cutTo(String source, String target) {
File sourFile = new File(source);
File tarFile = new File(target);
if (sourFile.isFile()) {
if (tarFile.isDirectory()) {
sourFile.renameTo(tarFile);
}
} else {
copy(source, target);
delete(source);
}
}
public static void main(String[] args) {
// copy("E:\\w.txt", "E:\\a");
// delete("E:\\a");
// zip("E:\\a.zip", "E:\\b");
// unzip("E:\\a.zip", "E:\\b");
// createFile("E:\\a.txt");
// createDir("E:\\bb");
// cutTo("E:\\b", "D:\\");
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lenotang/archive/2008/07/23/2698562.aspx
名称: ♪4C.ESL | .↗Evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail: 联系我