下面是一个简单的Java文件操作工具类,包含了复制文件和合并文件的功能。这个类使用了Java的`java.io`包中的类来处理文件。
import java.io.*;
public class FileUtils {
/**
* 复制文件
*
* @param sourceFile 源文件路径
* @param destFile 目标文件路径
* @throws IOException 如果发生I/O错误
*/
public static void copyFile(String sourceFile, String destFile) throws IOException {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(sourceFile);
fos = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
} finally {
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
}
}
/**
* 合并文件
*
* @param destFile 目标文件路径(合并后的文件)
* @param sourceFiles 源文件路径数组
* @throws IOException 如果发生I/O错误
*/
public static void mergeFiles(String destFile, String... sourceFiles) throws IOException {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(destFile, false); // false表示不追加
for (String sourceFile : sourceFiles) {
FileInputStream fis = null;
try {
fis = new FileInputStream(sourceFile);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
} finally {
if (fis != null) {
fis.close();
}
}
}
} finally {
if (fos != null) {
fos.close();
}
}
}
}
**注意**:
- 这个工具类使用了try-finally结构来确保文件流在操作完成后能够被正确关闭。
- `copyFile`方法用于复制单个文件。
- `mergeFiles`方法用于将多个源文件合并到一个目标文件中。此方法接受一个可变参数`sourceFiles`,它是一个字符串数组,包含了所有要合并的源文件路径。
- 在调用这些方法时,需要确保提供的文件路径是正确的,且Java程序有足够的权限去读写这些文件。
- 这个示例没有添加异常处理的逻辑(比如打印日志或通知用户),这在实际应用中可能是必要的。