接收给定的一行字符串(如:/test/a.txt,/testa1.txt。其中逗号前的字符串为源文件,逗号后的为目标文件); 使用字节缓冲流把源文件中的内容复制到目标文件中; 输出复制后的目标文件长度,示例:“文件长度:X”。
时间: 2024-11-13 14:19:13 浏览: 19
当你有一个包含源文件路径(例如 "/test/a.txt")和目标文件路径(例如 "/testa1.txt")的字符串,你可以通过以下步骤使用Java的字节缓冲流(BufferedInputStream 和 FileOutputStream)将源文件的内容复制到目标文件,并输出复制后的目标文件长度:
1. 首先,你需要使用`java.io.File`类的构造函数将字符串解析为文件路径对象。
2. 然后创建一个`FileInputStream`来读取源文件,以及一个`FileOutputStream`来写入目标文件。使用`BufferedInputStream`和`BufferedOutputStream`作为其内部实现,可以提高数据传输的效率。
```java
import java.io.*;
public class FileCopyExample {
public static void main(String[] args) {
String sourcePath = "/path/to/source/file.txt";
String targetPath = "/path/to/target/file.txt";
try {
// 解析路径并打开输入和输出流
File inputFile = new File(sourcePath);
File outputFile = new File(targetPath);
FileInputStream fis = new BufferedInputStream(new FileInputStream(inputFile));
FileOutputStream fos = new FileOutputStream(outputFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
// 将源文件内容复制到目标文件
byte[] buffer = new byte[4096]; // 定义缓冲区大小
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead); // 写入缓冲区的数据
}
// 关闭所有流
fis.close();
bos.close();
// 计算并打印目标文件长度
long targetLength = outputFile.length();
System.out.println("文件长度:" + targetLength + " 字节");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,如果一切顺利,它会复制源文件的内容到目标文件,并在控制台上显示目标文件的长度。
阅读全文