java文件流-复制所有文件

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.File;
import java.util.Scanner;
public class FileTest{

public static void main(String args[])
{
	Scanner scanner=new Scanner(System.in);
	System.out.println("请输入源文件路径地址(格式:D:/xx/xx):");
	String sourceFilePath=scanner.nextLine();
	System.out.println("请输入目标路径地址(格式:D:/xx/xx):");
	String newFilePath=scanner.nextLine();
	
	 FileOperetor(sourceFilePath,newFilePath);
	
}

public static void FileOperetor(String sourceFilePath, String newFilePath) {
	try { 
		(new File(newFilePath)).mkdirs(); //判断文件夹是否存在,如果不存在,创建新文件夹
		File f=new File(sourceFilePath); 
		String[] files=f.list(); 
		File temp=null; 
		for (int i = 0; i < files.length; i++) { 
		//测试此字符串是否以指定的后缀结束。
		if(sourceFilePath.endsWith(File.separator)){    //与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
			temp=new File(sourceFilePath+files[i]); 
		} 
		else{ 
			temp=new File(sourceFilePath+File.separator+files[i]); //子文件
		}
		//判断是否为文件
		if(temp.isFile()){
			//转流形式
			FileInputStream input = new FileInputStream(temp); 
			FileOutputStream output = new FileOutputStream(newFilePath + "/" + 
			(temp.getName()).toString()); 
			byte[] b = new byte[1024 * 8]; 
			int len; 
		while ( (len = input.read(b)) != -1) { 
			output.write(b, 0, len); 
		} 
			output.flush(); 
			output.close(); 
			input.close(); 
		} 
		if(temp.isDirectory()){//表示的文件是否是一个目录。子文件夹路径要发生改变
			FileOperetor(sourceFilePath+"/"+files[i],newFilePath+"/"+files[i]); 
		} 
	} } catch (Exception e) { 
			System.out.println("复制时出错!"); 
			e.printStackTrace();
	}}

}

你可能感兴趣的:(java,base)