利用文件输入/输出流和缓冲流编写一个实现文件拷贝的程序,源文件名和目标文件名通过Scanner类从控制台获取。
时间: 2023-07-15 11:14:03 浏览: 51
以下是实现文件拷贝的程序:
```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();
// 创建文件输入/输出流和缓冲流
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try {
fis = new FileInputStream(srcFileName);
bis = new BufferedInputStream(fis);
fos = new FileOutputStream(destFileName);
bos = new BufferedOutputStream(fos);
// 读取源文件并写入目标文件
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
// 输出拷贝成功消息
System.out.println("文件拷贝成功!");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭流
try {
if (bos != null) {
bos.close();
}
if (fos != null) {
fos.close();
}
if (bis != null) {
bis.close();
}
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
程序使用了 `Scanner` 类从控制台获取源文件名和目标文件名,然后创建了文件输入/输出流和缓冲流,以便实现高效的文件读取和写入。在读取源文件时,程序每次读取 1024 个字节,并将这些字节写入目标文件。最后,程序关闭所有流并输出拷贝成功消息。