`
周一Monday
  • 浏览: 346844 次
  • 来自: 北京
社区版块
存档分类
最新评论

文件复制工具类

 
阅读更多
package io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 文件复制
 * 
 * @author Monday
 */
public class FileCopy {

	/**
	 * 复制文本文件
	 * 
	 * @param src 源文件的目录
	 * @param dest 目标文件的目录
	 */
	public static void copyText(String src, String dest) {
		BufferedReader bufr = null;
		BufferedWriter bufw = null;
		try {
			bufr = new BufferedReader(new FileReader(src));
			bufw = new BufferedWriter(new FileWriter(dest));
			String str = null;
			while ((str = bufr.readLine()) != null) {
				bufw.write(str); // 写入文件
				bufw.newLine(); // 写入换行符
				bufw.flush(); // 刷新缓冲
			}

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (bufw != null) {
				try {
					bufw.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (bufr != null) {
				try {
					bufr.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	/**
	 * 复制二进制文件 
	 * 例如:图片、音频、视频 
	 * 文本也可以
	 * 
	 * @param src 源文件的目录
	 * @param dest 目标文件的目录
	 */
	public static void copyBinary(String src, String dest) {
		BufferedInputStream bufi = null;
		BufferedOutputStream bufo = null;
		try {
			bufi = new BufferedInputStream(new FileInputStream(src));
			bufo = new BufferedOutputStream(new FileOutputStream(dest));
			int len = 0;
			byte[] b = new byte[bufi.available()];
			while ((len = bufi.read(b)) != -1) {
				bufo.write(b, 0, len);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (bufo != null) {
				try {
					bufo.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (bufi != null) {
				try {
					bufi.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	/**
	 * 测试
	 */
	public static void main(String[] args) {
		FileCopy.copyText("src/复习计划.txt", "src/复习计划_copy.txt");
		System.out.println("ok");

		System.out.println("============");

		FileCopy.copyBinary("src/numb.mp3", "src/numb_copy.mp3");
		System.out.println("ok");
	}
}

 

上面的代码用了很多Bufered...是为了提高效率。提高效率多写几行代码还是值得的。

分享到:
评论

相关推荐

    Android文件操作工具类

    文件操作工具类,包含生成保存,复制,删除,读取,获取文件名,获取文件列表等等,只有你想不到,没有你找不到的Android端工具类,复制到项目中可直接使用

    java写的一个实用的高速复制大文件的工具类

    下面是一个高效的大文件复制工具类的基本框架: ```java import java.io.*; public class HighSpeedFileCopyUtil { public static void copyFile(String sourcePath, String destPath) throws IOException { ...

    完整的java文件读写工具类

    在Java编程语言中,文件的读写操作是日常开发中不可或缺的部分。为了简化这些操作,开发者经常编写工具类,提供方便的方法来...在实际应用中,还可以根据需求扩展更多功能,比如追加写入、读写二进制文件、文件复制等。

    [史上最全] 文件处理工具类 java版 处理文件流, 文件目录递归等

    - 文件复制、移动和删除(如 `copyFile(File source, File dest)`、`moveFile(File source, File dest)` 和 `deleteFile(String filePath)`); - 文件搜索和遍历(如 `listFilesInDir(File dir)` 和 `searchFile...

    功能强大的java实现的拷贝文件的工具类(0)

    功能强大的文件拷贝工具类  复制文件  @author:heyuelin 2011-01-06  @param srcFile 源文件File  @param destDir 目标目录File  @param isClone true:将按照源文件目录拷贝,false:将提取出文件拷贝到...

    C# 文件工具类 文件读写 复制 删除 创建文件夹

    C# 文件工具类 实际项目使用 久经考验 文件读写 复制 删除 创建文件夹 判断文件扩展名等等

    文件操作工具类

    除了基本的文件操作外,还有目录操作、文件复制、重命名、权限设置等。例如,使用`File`类的`mkdirs()`创建目录,`renameTo()`重命名文件,`setWritable()`, `setReadable()`, `setExecutable()`调整文件权限。 七...

    批量复制文件小工具

    批量复制文件小工具是一款实用的计算机应用程序,设计用于帮助用户高效地处理大量文件的复制任务。在日常工作中,我们可能需要将...通过理解这些关键特性和功能,用户能够更好地利用这类工具来优化他们的文件管理流程。

    文件批量复制工具

    4. **速度控制**:为了防止因大量文件复制导致目标磁盘过载,工具通常允许用户设定复制速度。 5. **断点续传**:如果复制过程中发生中断,工具能够记录进度并在下次启动时继续复制未完成的部分。 6. **错误处理**:...

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    文件复制(大文件快速复制工具)

    FastCopy就是这样一款高效、快速的文件复制工具,被广泛应用于系统部署、数据迁移等场景。FastCopy的核心优势在于其优化的I/O处理机制,它可以并行处理多个文件,同时利用硬件缓存,减少磁盘读写的时间,从而实现比...

    Java poi复制execl的sheet页,跨文件操作,数据和样式全部复制,工具类

    在这个例子中,我们展示了如何跨文件复制Sheet页,不仅复制了数据,还保留了样式和格式,这对于数据处理和报告生成等场景非常有用。在实际应用中,可能还需要根据需求进行额外的定制,例如添加错误处理、支持更多...

    C# 常用工具类 日志操作(log4net) 配置管理、字符串工具、DateTime工具、图片工具、文件工具、加密工具 等

    6. **文件工具**: 文件工具类提供了对文件系统的操作,例如创建、删除、移动、复制文件,读写文件内容,以及检查文件是否存在等。这些方法能够帮助简化文件操作,提高代码的健壮性。 7. **加密工具**: 加密工具类...

    Java实现的文件读取工具类

    在这个"Java实现的文件读取工具类"中,我们可以预期它包含了一些核心的文件I/O功能以及日期和字符串之间的转换方法。下面我们将详细探讨这些知识点。 1. **文件读取与写入**: - `FileInputStream`:用于读取二...

    java File文件处理工具类

    Java中的`File`类是Java I/O流体系中不可或缺的一部分,它是用来操作...结合`FileUtils`这样的辅助工具类,我们可以编写出更简洁、易维护的代码。在实际开发中,还应考虑异常处理和错误恢复策略,以确保程序的健壮性。

    海量大量文件复制工具

    标题中的“海量大量文件复制工具”指的是专门设计用于高效处理大量小文件复制的软件。在IT行业中,当面临成千上万个小型文件的复制任务时,传统的文件管理系统(如Windows自带的复制粘贴功能)可能会表现出低效和...

    MAC端文件复制工具

    然而,有时开发者或技术爱好者可能想要创建自己的定制化解决方案,这就催生了“MAC端文件复制工具”的诞生。 这个项目是一个简单的MAC OSX平台上的文件复制应用程序,由个人开发者编写。它体现了MAC OS X系统编程的...

    C#工具类库类库 包含所有的常用工具类

    这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行交互的组件。它可能包含连接、上传、下载文件以及目录管理等方法。例如,`FtpClient`类可以用来建立FTP连接,`UploadFile`...

Global site tag (gtag.js) - Google Analytics