Java复制文件的方法:
1、运用普通的缓冲输入输出流来复制(也就是老师上课所讲的方法)。
测试结果如下:
2、运用文件通道的方式来进行复制(我改进的方法)。
文件通道:首先要得到两个对应的文件通道,然后连接两个通道,从in通道读取,写入out通道,此方法可高效率的复制文件,节省时间。
代码如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class COPY {
/**
* @param args
*/
public static void fileChannelCopy(File s, File t) {
try {
FileInputStream fis = new FileInputStream (s);
FileOutputStream fos = new FileOutputStream (t);
FileChannel in = fis.getChannel();//得到对应的文件通道
FileChannel out = fos.getChannel();//得到对应的文件通道
in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
File s = new File("a.mp3");
File t = new File("temp.jpg");
long start,end;
start = System.currentTimeMillis();
fileChannelCopy(s,t);
end = System.currentTimeMillis();
System.out.println("用时" + (end - start) + "ms");
}
}
测试结果如下: