IO流复制文件及文件夹
1.复制文件:
提示:可使用字节流和字符流实现
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyMp4 {
public static void main(String[] args) {
// 在指定路径下创建文件
File file = new File("E:/java/land.mp4");
try {
// 字节输入流:把硬盘中的文件读取到内存,相当于打开文件
FileInputStream in = new FileInputStream(file);
// 建立一个缓存区
byte[] b = new byte[(int) file.length()];
// 读取文件内容到缓冲区
in.read(b);
// 关闭字节流输入
in.close();
// 字节输出流,是从内存写入数据到硬盘文件
FileOutputStream o = new FileOutputStream("E:/aa/a.mp4", true);
// 讲缓存区的b写入指定文件夹
o.write(b);
// 关闭字节流输出
o.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.复制文件夹
提示:可使用字节流和字符流进行实现
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class copyDirDemo {
public static void main(String[] args) {
try {
copyDirDemo.copyDir(new File("E:/aa"), new File("E:/java/bb"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void copyDir(File oldFile, File newFile) throws IOException {
// if(!newFile.exists()){
newFile.mkdirs();
// }
File[] files = oldFile.listFiles();
for (File file : files) {
if (file.isDirectory()) {
copyDir(file, new File(newFile.getAbsolutePath() + "//" + file.getName()));
}
if (file.isFile()) {
/**
* 使用字节流复制文件夹
*/
/*
* FileInputStream fis=new FileInputStream(file);
* FileOutputStream fos=new
* FileOutputStream(newFile.getAbsolutePath()+"\\"+file.getName(
* )); byte[] b=new byte[1024*1024]; int length=0;
* while((length=fis.read(b))!=-1){ fos.write(b,0,length);}
* fos.close(); fis.close();
*/
/**
* 使用字符流复制文件夹
*/
BufferedReader in = new BufferedReader(new FileReader(file));
BufferedWriter out = new BufferedWriter(
new FileWriter(newFile.getAbsolutePath() + "\\" + file.getName()));
String line = null;
while ((line = in.readLine()) != null) {
out.write(line);
out.newLine();
}
in.close();
out.close();
}
}
}
}
还没有评论,来说两句吧...