- 浏览: 17136 次
- 性别:
- 来自: 武汉
文章分类
最新评论
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:\\");
}
}
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:\\");
}
}
发表评论
-
json数据处理
2016-06-22 15:16 481public static <T> T rea ... -
java的同步异步调用
2016-03-06 18:09 890软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分 ... -
shiro初级认识
2016-02-29 18:21 820一、 介绍: shiro是apache提供的强大而灵活 ... -
校验身份证号码及编码规则
2015-12-10 15:52 851身份证前6位【ABCDEF】为行政区划数字代码(简称数字码) ... -
org.apache.commons.httpclient的jar包的使用
2015-01-21 15:15 27651.创建HttpClient实例 HttpClient ... -
checkbox实现全选
2014-12-12 10:54 654<%@ page contentType=" ... -
servlet实现多文件上传
2014-12-12 10:44 5591.fileupload.jsp<%@ page l ... -
servlet实现文件的下载
2014-12-12 09:53 510public class DownLoadServlet ex ... -
jxl对Excel的操作,包含合并单元格
2014-12-11 15:50 164201.import java.io.*; 02.im ... -
实现将数据导入到excel中或者从excel中将数据导入到数据库
2014-10-21 10:21 723/** * 将数据写入Excel中 */ public ...
相关推荐
用java实现的文件和文件夹拷贝和转移
标题中的“大名鼎鼎的小文件拷贝工具”指的是一个广为人知的软件,它专门用于快速复制小文件。这个工具以其高效的多线程技术著称,能够在短时间内完成大量小文件的复制工作,大大提高了工作效率。它是由微软公司开发...
在IT领域,大文件的拷贝操作经常遇到挑战,尤其是涉及到大量的数据迁移或者备份时。...对于IT专业人士和普通用户来说,理解并熟练运用这类工具,能够有效解决日常工作中遇到的大文件拷贝难题,节约宝贵的时间。
标题中的“FTP文件拷贝(边拷贝边删除)”指的是一个功能强大的FTP文件传输程序,它不仅能够将FTP服务器上的文件下载到本地,而且在拷贝过程中还支持自动删除源文件,这在需要释放远程存储空间或者确保文件一次性转移...
【文件火速拷贝大师增强版】是一款专为提高文件拷贝效率而设计的强大工具,其核心功能在于优化数据传输速度,确保用户在转移大量文件时能以最快速度完成任务。这款软件针对传统文件复制过程中的瓶颈进行优化,如I/O...
- 自C++17起,`std::filesystem::copy_file()`提供了更便捷的文件拷贝功能。它不仅可以拷贝文件,还可以设置拷贝选项,例如是否覆盖已存在的目标文件。 2. **文件删除**: - `remove()`函数来自`<cstdio>`,它...
FastCopy以其卓越的性能和易用性在同类软件中脱颖而出,尤其在大量数据转移和备份场景中,其优势尤为显著。 FastCopy的核心特点在于其优化的拷贝算法,能够充分利用系统资源,尤其是在处理大文件和多文件夹结构时,...
在IT领域,高效的数据传输和文件拷贝是日常工作中的重要环节。"最快的文件拷贝工具(每秒20MB)"这个标题所指的工具显然强调了其在速度方面的优势,能够实现每秒20MB的拷贝速率。这在处理大量数据或者需要频繁转移文件...
- **数据迁移**:在不同设备间转移大量文件,如从一台电脑迁移到另一台电脑,或者从本地存储迁移到云存储。 - **版本控制**:在开发环境中,经常需要复制特定版本的代码或资源文件到不同的测试环境。 - **文件整理**...
在内部网络环境中,不同计算机之间的文件拷贝是日常工作中常见的需求。这可能涉及到开发、测试、部署等各个环节,确保数据的高效传输对于提高工作效率至关重要。本文将总结三种主要的文件拷贝方法:FTP(文件传输...
windows下批量拷贝目录下所有文件夹中的...肯定不能改动文件的名字,就是拷贝到一个文件中,方便后期的文件查看、转移和分析,简单的说的话就是把存放数据的那个盘下面的所有文件夹中的variant文件(.vcf)拷贝出来;
标题中的“Fastcopy文件拷贝copy”指的是一款名为Fastcopy的高效文件复制软件。Fastcopy因其极快的文件拷贝速度而闻名,它是由日本开发者设计并开发的一款工具,旨在提供比操作系统自带的文件复制功能更快速、更稳定...
FastCopy是一款广受好评的开源软件,它以其高速的文件拷贝和删除功能而著名,支持多种文件系统,并且可以自定义设置操作模式,如优先级、错误处理策略等。 在实际使用中,用户可能需要了解如何安装和配置FastCopy,...
标题和描述中提到的是关于文件拷贝,特别是如何在不同系统之间,比如虚拟机与主机之间进行文件的传输。以下是对这些知识点的详细说明: 在现代计算机环境中,文件拷贝是一个常见的操作,尤其是在多操作系统环境下,...
标题提到的“快速拷贝工具”是一种专门设计用于提高大文件拷贝速度的软件工具。在处理GB级别的大型文件时,传统的文件复制操作可能会非常耗时,因为它们通常依赖于操作系统的基础文件系统功能,这些功能在处理大量...
通过以上分析,我们可以看出ExtremeCopy是一款专注于提高文件拷贝速度的工具,尤其适合需要频繁转移大量数据的用户,它提供了超越操作系统默认复制功能的性能,并且具有良好的用户友好性和可靠性。
在IT领域,文件拷贝是一项基础但至关重要的操作。标题中的"最快拷贝文件.rar"表明我们关注的焦点...通过合理选择和使用高效的文件拷贝工具,结合系统优化,我们可以在日常工作中显著提高文件拷贝效率,节约宝贵的时间。
《FastCopy 2.01:高效文件拷贝的得力助手》 在日常的计算机操作中,我们经常需要进行大量的文件复制与移动工作,尤其是在处理J2EE开发的workspace等大型项目时,传统的文件操作工具往往显得效率低下。这时,Fast...
TeraCopy 是一款专为提升文件拷贝速度和效率而设计的工具,尤其适用于处理大量数据的转移。它优化了文件复制过程,减少了在传输大文件或大量文件时可能出现的错误和等待时间。这款工具出自CodeProjects,提供了源码...
总的来说,FastCopy_v1.52是一款值得推荐的文件拷贝工具,无论是日常工作中的大量文件转移,还是备份重要数据,它都能提供高效、可靠的解决方案。如果你还在忍受系统默认拷贝功能的缓慢,不妨试试FastCopy,让文件...