文件夹拷贝到另一文件中
文件的拷贝,程序为桥梁
建立联系 File对象 文件源头 拷贝至目的地
选择流 文件输出流 OutputStream FileOutputStream
文件输入流 InputStream FileInpuStream
操作 byte[] b = new byte[1024];
int len = 0;
while(len = (输入流.read(b)) != -1){
输出流.write ()+b
}
释放资源 关闭输出、输入流
package com.java;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
1、建立联系 File对象 源头 目的地
2、选择流
文件输入流 InputStream FileInputStream
文件输出流 OutputStream FileOutputStream
3、操作 : 拷贝
byte[] flush =new byte[1024];
int len =0;
while(-1!=(len=输入流.read(flush))){
输出流.write(flush,0,len)
}
输出流.flush
4、释放资源 :关闭 两个流
* @author Administrator
*
*/
public class demo9 {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) {
String srcPath ="F:/ld/lzy.txt";
String destPath="G:/www/11/11.txt";
File src=new File(srcPath);
File dest=new File(destPath);
try {
copyFile(src,dest);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("文件不存在");
} catch (IOException e) {
e.printStackTrace();
System.out.println("拷贝文件失败|关闭流失败");
}
}
/**
* 文件的拷贝
* @param 源文件路径
* @param 目录文件路径
* @throws FileNotFoundException,IOException
* @return
*/
public static void copyFile(File src,File dest)
throws FileNotFoundException,IOException {
//1、建立联系 源(存在且为文件) +目的地(文件可以不存在)
if(! src.isFile()){ //不是文件或者为null
System.out.println("只能拷贝文件");
throw new IOException("只能拷贝文件");
}
//2、选择流
InputStream is =new FileInputStream(src);
OutputStream os =new FileOutputStream(dest);
//3、文件拷贝 循环+读取+写出
byte[] flush =new byte[1024];
int len =0;
//读取
while(-1!=(len=is.read(flush))){
//写出
os.write(flush, 0, len);
}
os.flush(); //强制刷出
//关闭流
os.close();
is.close();
}
}
文件夹拷贝到另一文件夹中
思路:遍历源文件夹,源文件是文件的话依次把源文件拷贝到目的文件,源文件是目录的话就在目的文件中新建
package com.java;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
public class demo8 {
public static void main(String args[]){
String srcPath="F:/ld";
String destPath="G:/lzy";
File src=new File(srcPath);
File dest=new File(destPath);
if(src.isDirectory()){
dest=new File(destPath);
}
try {
copyDirDetail(src, dest);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 拷贝文件夹细节
* @param src
* @param dest
*/
public static void copyDirDetail(File src,File dest) throws
FileNotFoundException,IOException{
if(src.isFile()){ //文件
try {
demo9.copyFile(src,dest);
} catch (FileNotFoundException e) {
//e.printStackTrace();
throw e;
} catch (IOException e) {
//e.printStackTrace();
throw e;
}
}else if(src.isDirectory()){ //文件夹
//确保目标文件夹存在
dest.mkdirs();
//获取下一级目录|文件
for(File sub:src.listFiles()){
copyDirDetail(sub,new
File(dest,sub.getName()));
}
}
}
}