文档章节

文件的复制和后缀的替换(一)代码比较冗余

f
 flyqilong
发布于 2015/12/23 17:44
字数 449
阅读 12
收藏 0
复制和替换工具类:
package com.homework;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyUtil {
public static void Copy(File srcFile, File desFie,String before,String after ) {
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(srcFile);
os = new FileOutputStream(desFie + File.separator + srcFile.getName().replace(before, after));
byte[] a = new byte[1024];
int len = -1;
while ((len = is.read(a)) != -1) {
os.write(a, 0, len);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
is.close();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void Copy(File srcFile, File desFie ) {//如果不用替换后缀的话,在控制台输入源目录和目标目录即可
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(srcFile);
os = new FileOutputStream(desFie + File.separator + srcFile.getName());
byte[] a = new byte[1024];
int len = -1;
while ((len = is.read(a)) != -1) {
os.write(a, 0, len);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
is.close();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
主程序测试类:
package com.homework;
import java.io.File;
import java.util.Scanner;
/*复制当前目录。
将指定目录的.java或者.xml转换为.txt文件。并且将目录也复制过去。
遍历指定目录的所有文件,并且格式化打印出文件的名字。*/
public class CopyOtherTest {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("--请输入源目录---");
String source = scanner.nextLine();
System.out.println("--请输入目标目录---");
String destination = scanner.nextLine();
System.out.println("--请输入变换前的后缀---");
String before = scanner.nextLine();
System.out.println("--请输入要改后的后缀---");
String after = scanner.nextLine();
File srcFile = new File(source);
File desFie = new File(destination);
try {
Find(srcFile, desFie,before,after);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void Find(File srcFile, File desFie, String before, String after)  {
if (!srcFile.exists()) {
return;
}
if (srcFile.isFile()) {
if (!desFie.exists()) {
desFie.mkdirs();
}
 System.out.println("------"+srcFile.getPath()); 
if (srcFile.getName().endsWith(before)) {
CopyUtil.Copy(srcFile,desFie,before,after);
}else{
CopyUtil.Copy(srcFile,desFie);
}
} else if (srcFile.isDirectory()) {
File[] file = srcFile.listFiles();
 System.out.println("当前目录:"+srcFile.getAbsolutePath());
for (File f : file) {
Find(f, new File(desFie + File.separator + srcFile.getName()),before,after);
}
}
}
}

© 著作权归作者所有

f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
私信 提问
cp命令_学习笔记

时间:2017.12.03作者:李强参考:man,info,magedu讲义声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为...

lajifeiwomoshu
2017/12/03
0
0
Android Studio 和 Eclipse 中获取SHA1详解

签名文件keystore一般有两种:jks后缀或者keystore后缀,Android Studio中创建的为jks后缀,keytool创建的为keystore后缀,两种文件均可用于APP打包。 开发版SHA1:是指在开发调试时,从And...

恒源祥
2016/11/16
352
0
不用开发实现RDS RDWeb门户美化和个性化

个性化RDWeb界面 RDWeb原生界面相对比较简洁,每个企业部署的RDWeb都是千篇一律的,有些用户可能希望将网页装饰得个性化点。在谈到自定义Web界面,第一反应可能是使用代码进行编写,但是这里...

IT小匠Leo
2018/06/27
0
0
Vue项目Webpack优化实践,构建效率提高50%

公司的前端项目使用Vue框架,Vue框架使用Webpack进行构建,随着项目不断迭代,项目逐渐变得庞大,然而项目的构建速度随之变得缓慢,于是对Webpack构建进行优化变得刻不容缓。经过不断的摸索和...

风逝123
2018/12/24
0
0
org.apache.commons 常用工具类

一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。 toString 转换IO流、 Uri、 byte[]为String。 copy IO流数据复制,...

sprouting
2018/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
7
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部