您的位置:首页 > 运维架构

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

2018-01-12 17:11 155 查看
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();

    }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: