复制单个文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String[] args) throws IOException {
long l = System.currentTimeMillis();
FileInputStream fis = new FileInputStream("D:\\百度云视频\\闪灵.mp4");
FileOutputStream fos = new FileOutputStream("G:\\桌面\\闪灵.mp4");
byte[] bytes = new byte[1024 * 1024];
int len;
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
fis.close();
fos.close();
long l1 = System.currentTimeMillis();
System.out.println(l1 - l);
}
}
复制一个文件夹到另一个文件夹
import java.io.*;
public class CopyFile {
public static void main(String[] args) throws IOException {
File srcfile = new File("H:\\javaee");
File defile = new File("D:\\java", srcfile.getName());
if (!defile.exists())
defile.mkdirs();
File[] files = srcfile.listFiles();
for (File file : files) {
if (file.isFile()) {
File newfile = new File(defile + file.getName());
InputStream inputStream = new FileInputStream(file);
OutputStream outputStream = new FileOutputStream(newfile);
byte[] bytes = new byte[1024 * 1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
}
inputStream.close();
outputStream.close();
}
}
}
}
文件夹复制完整版
import java.io.*;
public class CopyFiles {
public static void main(String[] args) {
long l = System.currentTimeMillis();
File srcFile = new File("G:\\桌面\\SmartEducation\\");
File destFile = new File("D:\\lianxi1\\");
copyFiles(srcFile, destFile);
long e = System.currentTimeMillis();
System.out.println("复制完成,共耗时" + (e - l) / 1000 + "秒");
}
public static void copyFiles(File src, File dest) {
String name = src.getName();
File newFile = new File(dest, name);
System.out.println(newFile);
if (!newFile.exists()) {
boolean mkdirs = newFile.mkdirs();
if (mkdirs) {
System.out.println("文件夹创建成功!");
}
}
File[] files = src.listFiles();
for (File file : files) {
if (file.isFile()) {
File defile = new File(newFile, file.getName());
System.out.println(defile);
InputStream inputStream = null;
OutputStream outputStream = null;
try {
inputStream = new FileInputStream(file);
outputStream = new FileOutputStream(defile);
byte[] bytes = new byte[1024 * 1024];
int len;
while ((len = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
}
System.out.println("文件写入成功");
} catch (IOException e) {
System.out.println("文件写入失败");
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
copyFiles(file, newFile);
}
}
}
}