利用文件输入/输出流和缓冲流编写一个实现文件拷贝的程序,源文件名和目标文件名通过Scanner类从控制台获取。
时间: 2023-07-15 13:13:51 浏览: 53
以下是一个利用文件输入/输出流和缓冲流编写的实现文件拷贝的程序,可以通过控制台输入源文件名和目标文件名。
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入源文件名:");
String srcFileName = scanner.nextLine();
System.out.print("请输入目标文件名:");
String destFileName = scanner.nextLine();
try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(srcFileName));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(destFileName))) {
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
System.out.println("拷贝文件成功!");
} catch (IOException e) {
System.out.println("拷贝文件失败:" + e.getMessage());
}
}
}
```
在程序中,我们使用了 `BufferedInputStream` 和 `BufferedOutputStream` 对文件进行读取和写入操作,这样可以提高文件操作的效率。同时,我们也使用了 try-with-resources 语句来自动关闭文件流,避免了手动关闭文件流时可能出现的异常。