JAVA文本文件复制
时间: 2024-09-12 21:04:07 浏览: 40
在Java中,文本文件的复制通常涉及到读取原文件的内容,并将其写入到新的文件中。这个过程可以通过使用Java的`File`类和`FileReader`、`BufferedReader`以及`FileWriter`等I/O流类来实现。下面是一个简单的示例代码,演示了如何使用这些类来复制一个文本文件:
```java
import java.io.*;
public class TextFileCopy {
public static void copyFile(String sourcePath, String destinationPath) throws IOException {
// 检查源文件是否存在
File sourceFile = new File(sourcePath);
if (!sourceFile.exists()) {
throw new FileNotFoundException("源文件未找到: " + sourcePath);
}
// 创建输入流和输出流
try (
FileReader reader = new FileReader(sourceFile);
BufferedReader bufferedReader = new BufferedReader(reader);
FileWriter writer = new FileWriter(destinationPath);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
) {
// 读取原文件内容,并写入新文件
String line;
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(line);
bufferedWriter.newLine(); // 添加换行符,保持文件格式一致
}
}
}
public static void main(String[] args) {
String sourceFile = "path/to/source.txt"; // 源文件路径
String destFile = "path/to/destination.txt"; // 目标文件路径
try {
copyFile(sourceFile, destFile);
System.out.println("文件复制完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,`copyFile`方法接受源文件路径和目标文件路径作为参数,然后通过`FileReader`和`BufferedReader`组合读取源文件内容,通过`FileWriter`和`BufferedWriter`组合写入目标文件。使用`BufferedReader`来逐行读取可以提高读取效率,并且`BufferedWriter`在写入时也具有缓冲功能,可以减少实际的写操作次数。
注意:实际应用中需要处理多种异常情况,例如文件不存在、读写权限受限、磁盘空间不足等。在上面的代码中,我们通过抛出和捕获`IOException`来处理这些潜在的I/O异常。
阅读全文