1. 程式人生 > >Java面試題---用IO流模擬剪下檔案功能(把一檔案中所有的檔案剪下到指定目錄中)

Java面試題---用IO流模擬剪下檔案功能(把一檔案中所有的檔案剪下到指定目錄中)

Java面試題---用IO流模擬剪下檔案功能

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Arrays;

import first.file;
//IO剪下功能
public class Test {
	public static void main(String[] args) throws Exception{
		//先建立該檔案
		shearing("D:/p1","D:\\p2");	
	}
	public static void shearing(String source,String goal) throws Exception{
		File fileSource=new File(source);
		//1.判斷是否存在
		if(!fileSource.exists()){
			throw new NullPointerException("檔案不存在");	
		}
		//判斷是不是檔案,是檔案直接複製
		if(fileSource.isFile()){
			File fileGoal=new File(goal,fileSource.getName());
			FileInputStream fin = new FileInputStream(fileSource);
			System.out.println();
			FileOutputStream fos = new FileOutputStream(fileGoal);
			int n;
			while((n=fin.read())!=-1){
				fos.write(n);
			}
			fos.flush();
			fos.close();
			fin.close();
			//刪除該層原始檔
			fileSource.delete();
			return ;
		}
		//是資料夾,先建立資料夾名,然後獲取資料夾列表
		File fileGoal=new File(goal,fileSource.getName());
		fileGoal.mkdir(); 
		//迴圈檔案列表,進行遞迴判斷
		File[] listFiles = fileSource.listFiles();
		for (int i = 0; i < listFiles.length; i++) {
			String aa=listFiles[i].getAbsolutePath();
			String bb=fileGoal.getAbsolutePath();
			System.out.println(aa+"----"+bb);
			shearing(listFiles[i].getAbsolutePath(),fileGoal.getAbsolutePath());
		}
		//刪除該層原始檔夾
		fileSource.delete();
	}
}