Java面試題---用IO流模擬剪下檔案功能(把一檔案中所有的檔案剪下到指定目錄中)
阿新 • • 發佈:2019-02-12
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(); } }