通过javaIO递归实现操作系统对文件的复制、粘贴和删除功能,剪切=复制+粘贴+删除
代码示例:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;/**
* achieve file copy and delete using recursion
*
* @author ForeverLover
**/publicclassFileCopyAndDelete {//delete files of this pathpublicvoiddeleteFile(String path) {
File f=newFile(path);if(f.isDirectory()) {
File[] file=f.listFiles();for(File file1 : file) {this.deleteFile(file1.toString());
file1.delete();
}
}else{
f.delete();
}
f.delete();
}//copy files from path1 to path2publicvoidcopyFiles(String path1, String path2) throws IOException {
File f=newFile(path1);if(f.isDirectory()) {
File file=newFile(path2);if(!file.exists())
file.mkdir();
File[] file1=f.listFiles();for(File file2 : file1) {
copyFiles(file2.toString(), path2+"/"+file2.getName());
}
}else{
copy(path1, path2);
}
}//copy file from path1 to path2 one by onepublicvoidcopy(String path1, String path2) throws IOException {
DataInputStreamin=newDataInputStream(newBufferedInputStream(newFileInputStream(path1)));byte[] b =newbyte[in.available()];//available返回实际可读字节数,即总大小in.read(b);
DataOutputStreamout=newDataOutputStream(newBufferedOutputStream(newFileOutputStream(path2)));out.write(b);in.close();out.close();
}//main methodpublicstaticvoidmain(String[] args) {
FileCopyAndDelete f=newFileCopyAndDelete();//test copy files using recursive/** { String path1 = "D://Folder1"; String path2 = "D://Folder2"; try {
* f.copyFiles(path1, path2); System.out.PRintln("OK,COPY FINISH"); }
* catch (IOException e) { e.printStackTrace(); } }*///test delete files using recursive/** { f.deleteFile("C://Folder1");
* System.out.println("OK,DELETE FINISH"); }*/}
}