拷贝文件夹联系

来源:互联网 发布:日本读研 知乎 编辑:程序博客网 时间:2024/06/07 02:41

以下是我写的copy文件夹的练习:

import java.io.*;import java.util.*;import java.io.*;public class IO{public static void main(String[] args) throws IOException{CopyDirectory.copy("C:\\JAVA_shine","E:");}}class CopyDirectory{public static void copy(String sour, String tar) throws IOException{String[] tempstrs = sour.split("\\\\");String newsour = "\\"+sour;if(tempstrs[0].equals("C:")||tempstrs[0].equals("D:")||tempstrs[0].equals("E:")||tempstrs[0].equals("F:")){newsour = sour;tempstrs = Arrays.copyOfRange(tempstrs, 1, tempstrs.length);StringBuilder strb = new StringBuilder();for(String s : tempstrs){strb.append("\\");strb.append(s);}newsour = new String(strb);}File file = new File(sour);if(file.isDirectory()){System.out.println("这是一个目录:"+sour);File newfile = new File(tar+newsour);System.out.println(newfile.mkdirs());String[] strs = file.list();for(String str : strs){copy(sour+"\\"+str,tar);}}else{System.out.println(sour+"-----------"+tar+newsour);CopyFile.copy(sour,tar+newsour);}}}class CopyFile{public static void copy(String sour, String tar) throws IOException{byte[] bytes = new byte[1024*1024];FileInputStream filein = new FileInputStream(sour);FileOutputStream fileout = new FileOutputStream(tar);while(filein.read(bytes)!=-1){bytes = Arrays.copyOf(bytes,(int)(bytes.length*1.5));}int i = bytes.length-1;for(; i>=0; i--){if(bytes[i] != 0)break;}if(i == -1)i = 0;bytes = Arrays.copyOf(bytes, i);fileout.write(bytes);filein.close();fileout.close();}}


0 0
原创粉丝点击