编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Java文件的拷贝

在应用程序中,IO流通常都是成对出现的,即输入流和输出流一起使用。例如文件的拷贝就需要通过输入流来读取文件中的数据,通过输出流将数据写入文件。接下来通过一个案例来演示如何进行文件内容的拷贝,首先在D盘创建文件夹one,和two,然后在one文件夹中存放一个“example.txt”文件,拷贝文件的代码如例所示。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class IOTest {
    public static void main(String[] args) {
        try {
            // 创建一个字节输入流,用于读取当前目录下source 文件夹中的mp3 文件
            InputStream in = new FileInputStream("D:/one/example.txt");
            // 创建一个文件字节输出流,用于将读取的数据写入target 目录下的文件中
            OutputStream out = new FileOutputStream("D:/two/example.txt");
            int len; // 定义一个int 类型的变量len,记住每次读取的一个字节
            long begintime = System.currentTimeMillis(); // 获取拷贝文件前的系统时间
            while ((len = in.read()) != -1) { // 读取一个字节并判断是否读到文件末尾
                out.write(len); // 将读到的字节写入文件
            }
            long endtime = System.currentTimeMillis(); // 获取文件拷贝结束时的系统时间
            System.out.println("拷贝文件所消耗的时间是: " + (endtime - begintime) + "毫秒");
            in.close();
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行结果:

拷贝文件所消耗的时间是: 2毫秒

在拷贝过程中,通过while循环将字节逐个进行拷贝。每循环一次,就通过FileInputStream 的read()方法读取一个字节,并通过FileOutputStream 的write()方法将该字节写入指定文件,循环往复,直到len的值为-1,表示读取到了文件的末尾,结束循环,完成文件的拷贝。程序运行结束后,会在命令行窗口打印拷贝文件所消耗的时间。


未经允许不得转载: 技术文章 » Java编程 » Java文件的拷贝