package cn.demo.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;
/**
* 文件及文件夹复制
* @author zhangsong
*
*/
public class CopyFileDemo {
private static InputStream input = null;
private static OutputStream output = null;
@SuppressWarnings("resource")
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
System.out.println("请输入两个路径参数,第一个为原路径,第二个为拷贝路径");
String pathIn = scan.next();
String pathOut = scan.next();
copy(pathIn, pathOut);
input.close();
output.close();
}
private static void copy(String pathIn, String pathOut) throws IOException{
File fileIn = new File(pathIn);
if(fileIn.isDirectory()){
File[] files = fileIn.listFiles();
for(File f : files){
String fileInPath = f.getPath();
String fileOutPath = pathOut + fileInPath.substring(pathIn.length());
copy(fileInPath, fileOutPath);
}
}
copyFile(pathIn, pathOut);
}
private static void copyFile(String pathIn, String pathOut) throws IOException{
File fileIn = new File(pathIn);
File fileOut = new File(pathOut);
if(!fileIn.exists()){
System.out.println("拷贝目标路径错误!");
return;
}
if(fileIn.isDirectory()){
return;
}
if(!fileOut.getParentFile().exists()){
fileOut.getParentFile().mkdirs();
}
System.out.println("复制到:"+pathOut);
input = new FileInputStream(fileIn);
output = new FileOutputStream(fileOut);
byte[] data = new byte[1024];
int temp = 0;
while((temp = input.read(data))!=-1){
output.write(data, 0, temp);
}
output.flush();
}
}
java IO操作实现文件及文件夹的拷贝
最新推荐文章于 2021-02-25 03:00:15 发布