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()); } 请分析这段代码
时间: 2023-07-15 16:13:57 浏览: 102
java-io-all-in-one.pdf
这段代码实现了文件拷贝的功能。具体分析如下:
1. 程序从控制台输入源文件名和目标文件名。
2. 使用 try-with-resources 语句来打开源文件和目标文件的输入输出流,以确保在使用完后关闭它们。
3. 定义一个 1024 字节大小的缓冲区 byte[] buffer,用于存储从源文件读取的数据。
4. 使用 while 循环读取源文件中的数据,将其写入目标文件中。如果读取的字节数为 -1,则表示已经读取完整个文件,结束循环。
5. 在读取和写入数据的过程中,如果发生异常,会被 catch 语句捕获。程序将输出错误信息,指示拷贝文件失败。
6. 如果没有发生异常,则表示文件拷贝成功。程序将输出一条成功信息。
总之,这段代码通过缓冲输入输出流和缓冲区的方式,实现了高效的文件拷贝。
阅读全文