将某一目录下的符合要求的文件COPY到另一目录

package com.xiang;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


import org.junit.Test;


public class StreamDemo {
    @Test
    public void test1(){
    //分别用字节字符流,缓冲流把E:/学习文档子目录压缩eclipse常用快捷键.txt COPY到D:/temp/下
    //1 用字节流
        try {
this.byteStreamCopy("E:/学习文档子目录压缩/eclipse常用快捷键.txt", "E:/temp/m/s/t1.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }
    @Test
    public void test2(){
    //将srcFileUrl目录 下0112号的照片文件全部 COPY到 descFileUrl目录下
    try {
this.buffByteStreamCopy("C:/Users/Administrator/Desktop/jpg/jpg", "E:/temp/jpg");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }
    @Test
    public void test3(){
    try {
this.bufSrtStreamCopy("E:/学习文档子目录压缩/eclipse常用快捷键.txt", "E:/temp/m/s/t1.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    }
    public void byteStreamCopy(String srcFileUrl,String descFileUrl) throws IOException{
    File srcFile = new File(srcFileUrl);
    File descFile = new File(descFileUrl);
    createPreDirAndSubFile(descFileUrl, descFile);
    FileInputStream fis = new FileInputStream(srcFile);
    FileOutputStream fos = new FileOutputStream(descFile);
    byte[] b=new byte[1024];
    int len=-1;
    while((len=fis.read(b))!=-1){
    fos.write(b, 0, len);
    }
    }
/**
* @param xiangshuai
* @param descFileUrl :目标文件的url
* @param descFile   : 目标file
* @throws IOException

*/
public void createPreDirAndSubFile(String descFileUrl, File descFile) throws IOException {
if(!descFile.exists()){
    int lastIndexOf = descFileUrl.lastIndexOf("/");
    String parUrl = descFileUrl.substring(0, lastIndexOf);
    File parFile = new File(parUrl);
    if(!parFile.exists()){
    parFile.mkdirs();
    }
    descFile.createNewFile();
    }
}
    //将srcFileUrl目录 下0112号的文件全部 COPY到 descFileUrl目录下
    public void buffByteStreamCopy(String srcFileUrl,String descFileUrl) throws IOException{
    File srcFile = new File(srcFileUrl);
        File descFile = new File(descFileUrl);
         BufferedInputStream bis=null;
      BufferedOutputStream bos=null;
        if(!descFile.exists()){
        descFile.mkdirs();
     }
        String[] fileUrls = srcFile.list();//获得srcFile此目录下的所有子目录和文件
        for (String str : fileUrls) {
        boolean flag = str.contains("0112");
        if(flag){
        bis = new BufferedInputStream(new FileInputStream(new File(srcFileUrl+File.separatorChar+str)));
        bos=new BufferedOutputStream(new FileOutputStream(new File(descFileUrl+File.separatorChar+str)));
        byte[] b=new byte[1024];int len=-1;
        while((len=bis.read(b))!=-1){
        bos.write(b, 0, len);
        }
        }
}
    }
    //用缓冲字符流操作txt文件
    public void bufSrtStreamCopy(String srcFileUrl,String descFileUrl) throws IOException{
    File descFile = new File(descFileUrl);
    this.createPreDirAndSubFile(descFileUrl, descFile);
    BufferedReader br=new BufferedReader(new FileReader(new File(srcFileUrl)));
    BufferedWriter bw=new BufferedWriter(new FileWriter(descFile));
    String str=null;
    while((str=br.readLine())!=null){
    bw.write(str);
    bw.flush();
    bw.newLine();
    }
    }
}

猜你喜欢

转载自blog.csdn.net/xiangshuai198807/article/details/79046257