大家好,很长时间不写文章了,可能语言组织上有点乱,不过我会尽量表达出我代码的用处,以及项目中可能用到的地方,话不多说请看下文。
复制目录一般需要两个方法,方法一:
第一个创建远源文件的输入流以及目标文件的输出流,并把源文件写入到目标文件中,代码如下:
private void outFile(Fiel file,String path)
throws IOException{
FileInputStream fileIn = new FileInputStream(file);
FileOutputStream fileO = new FileOutputStream (new File(path));
int c;
byte[] b = new byte[1024*5];
try {
while ((c = fileIn.read(b)) != -1) {
fileO.write(b,0,c);
}
} catch (Exception e) {
e.printStacKtrace();
} finally {
关闭流
}
}
第二个方法就是用递归的方式遍历文件的目录,代码如下:这里的file参数是源文件根目录
private void getFile(File file,String path){
File outFile = new File(path);
if (!outFile.exists())
outFile.mkdirs();
File[] fileList = file.listFiles();
if(fileList.length > 0 ){
for(File f : fileList) {
if (f.isFile) { //这句是判断要写的是文件还是文件夹
this.outFile(f,path);//调用上面的方法
} else {
getFile(f,path+"/+f.getName()");//此语句是回调本方法,就是传递的参数变成下一文件夹了。
}
}
}
}
写的有点不好,因为不经常写,请原谅
复制目录一般需要两个方法,方法一:
第一个创建远源文件的输入流以及目标文件的输出流,并把源文件写入到目标文件中,代码如下:
private void outFile(Fiel file,String path)
throws IOException{
FileInputStream fileIn = new FileInputStream(file);
FileOutputStream fileO = new FileOutputStream (new File(path));
int c;
byte[] b = new byte[1024*5];
try {
while ((c = fileIn.read(b)) != -1) {
fileO.write(b,0,c);
}
} catch (Exception e) {
e.printStacKtrace();
} finally {
关闭流
}
}
第二个方法就是用递归的方式遍历文件的目录,代码如下:这里的file参数是源文件根目录
private void getFile(File file,String path){
File outFile = new File(path);
if (!outFile.exists())
outFile.mkdirs();
File[] fileList = file.listFiles();
if(fileList.length > 0 ){
for(File f : fileList) {
if (f.isFile) { //这句是判断要写的是文件还是文件夹
this.outFile(f,path);//调用上面的方法
} else {
getFile(f,path+"/+f.getName()");//此语句是回调本方法,就是传递的参数变成下一文件夹了。
}
}
}
}
写的有点不好,因为不经常写,请原谅