将某一目录下的符合要求的文件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();
}
}
}
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();
}
}
}
相关文章推荐
- 获取一个目录下的名称符合要求的全部文件+目录
- 替换目录下符合要求的文件里面的特定字符串
- 【Java】获取一个目录下的名称符合一定要求的全部文件+目录
- java 连接FTP下载指定目录下的所有符合要求的文件
- 获取一个目录下的名称符合一定要求的全部文件+目录,可以防止没有必要的文件被传入系统。
- java 遍历某一目录下的所有class文件
- shell脚本----cp (copy)复制文件或目录
- Linux命令:cp (copy)复制文件或目录
- 在某一磁盘目录下将.txt的所有文件遍历打印到控制台上
- Python学习写一小程序,从某一目录下所以文件中查询某字段,并显示文件名和所在行
- C/C++中判断某一文件或目录是否存在
- python某一目录下指定格式的文件路径保存到指定格式的文件中
- Ubuntu_Linux命令:cp (copy)复制文件或目录
- C#中copy某目录下的所有的目录和文件到目的目录
- 利用PHP输出某一目录所有文件
- 列出C盘根目录下符合规则的所有文件
- C/C++中判断某一文件或目录是否存在
- Linux命令:cp (copy)复制文件或目录
- maven 之 将资源文件 copy到classes目录中
- c++获取某一目录下的所有文件