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();
}
}
}