java递归实现复制一个文件夹下所有文件功能
今天开始学习java的IO,学了一个复制文件的例子程序后想自己实现以下如何复制一个文件夹,复制文件的例子程序如下:
packageio.github.liuzhan214;
importjava.io.File;
importjava.io.IOException;
publicclassMain{
voidsolve(){
Filefile=newFile("F:\\javaIOTest\\new.txt");
if(!file.exists()){
try{
file.createNewFile();
}
catch(IOExceptione){
e.printStackTrace();
}
}
else{
System.out.println(file.getName());
}
Filedir=newFile("F:\\javaIOTest");
System.out.println(dir.getName());
if(dir.isDirectory()){
String[]filename=dir.list();
for(Stringstr:filename){
FiletempFile=newFile(dir.getPath()+File.separator+str);
if(tempFile.isFile()){
System.out.println("File:"+tempFile.getPath());
}
elseif(tempFile.isDirectory()){
System.out.println("Dir:"+tempFile.getPath());
}
}
}
}
publicstaticvoidmain(String[]args){
Mainmain=newMain();
main.solve();
}
}
createNewFile可以创建一个文件
mkdir()可以创建一个目录
FileInputStream和FileOutoutStream可以实现文件的复制
实现文件夹复制的代码如下
packageio.github.liuzhan214;
importjava.util.Scanner;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
publicclassMain{
Scannerscanner=newScanner(System.in);
voidsolve(){
StringinputString=scanner.next();
StringoutputString=scanner.next();
FileinputFile=newFile(inputString);
FileoutputFile=newFile(outputString);
if(inputFile.exists()==false||outputFile.exists()==false){
System.out.println("输入或者输出路径不合法!");return;
}
FilesourceFile=inputFile;
FiledestFile=newFile(outputFile.getPath()+File.separator+inputFile.getName());
try{
myCopy(sourceFile,destFile);
}catch(Exceptione){
System.out.println("复制出现错误!");return;
}
System.out.println(sourceFile.getPath()+"->"+destFile.getPath()+"复制成功!");
}
voidmyCopy(FilesourceFile,FiledestFile)throwsException{
//保证sourceFile一定存在,destFile一定不存在,因此先创建destFile
if(sourceFile.isFile())destFile.createNewFile();
elseif(sourceFile.isDirectory())destFile.mkdir();
if(sourceFile.isFile())copy(sourceFile,destFile);
elseif(sourceFile.isDirectory()){
File[]files=sourceFile.listFiles();
for(Fileele:files){
FilenewDestFile=newFile(destFile.getPath()+File.separator+ele.getName());
myCopy(ele,newDestFile);
}
}
}
voidcopy(FilesourceFile,FiledestFile)throwsException{
//保证sourceFile一定存在,destFile一定存在
FileInputStreaminputStream=newFileInputStream(sourceFile);
FileOutputStreamoutputStream=newFileOutputStream(destFile);
byte[]arr=newbyte[256];
intlen=0;
while((len=inputStream.read(arr))>0){
outputStream.write(arr,0,len);
}
inputStream.close();
outputStream.close();
}
voidclose(){
scanner.close();
}
publicstaticvoidmain(String[]args){
Mainmain=newMain();
main.solve();
main.close();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。