白天没时间在上课没时间上网.晚上加班加点搞出来.望楼主见谅啊! 第三题文件名没改出来.不过新加了一个功能可以复制自定义后缀的文件.- /**
- 题目3、在一个文件夹内有文件夹和文件,文件名的格式为:数字+名称.java。
- 要求:把所有的.java文件复制一份,变为文件名格式为:数字+名称+数字.java。
- (其中数字是相对应的,名称由字母组成。如:01Demo.java——>01Demo01.java)
- */
- package test;
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.util.Scanner;
- class Exam {
- public static void main(String[] args) {
- Scanner s = new Scanner(System.in);
- System.out.println("复制文件的目录(去掉结尾的两个\\否则运行失败):");
- String sourcePath = s.next();
- System.out.println("源目录路径字符的个数.(如d:\\demo有7个字符 ,就输入7 ).请输入:");
- int count = s.nextInt();
- System.out.println("文件存储的目录(去掉结尾的两个\\否则运行失败):");
- String storePath = s.next();
- System.out.println("要复制的文件后缀名(如.java)");
- String layout = s.next();
-
- File f = new File(sourcePath);//创建一个文件夹对象
-
- reCopy(f, sourcePath,count,storePath,layout);//
- }
-
- /**
- @param f 接收一个文件夹对象
- @param sourcePath 被复制文件的路径.(去掉结尾的两个\否则运行失败)
- @param storePath 复制目的目录(去掉结尾的两个\否则运行失败)
- @param count 源目录路径字符的个数.(如d:\demo有7个字符 ,就输入7 )
- @param layout 要复制的文件后缀名
- */
- public static void reCopy(File f, String sourcePath, int count,
- String storePath,String layout) {
- //Copy c = new Copy();
- File[] st = f.listFiles();//创建一个抽象路径名数组,存储文件对象
- for (int i = 0; i < st.length; i++) {
- //判断如果是文件就复制.文件夹跳过不操作
- if(st[i].isFile()) {
- String s =st[i]+"";
- String fileName = s.substring(count);//提取要文件名
- if(fileName.endsWith(layout)) {
- System.out.println(fileName);
- copyFile(sourcePath ,fileName, storePath);
- }
- //用字符流传输(FileReader)
- }
- }
- }
-
-
- //复制一个文件到另外一个文件夹
- public static void copyFile(String sourcePath, String fileName,String storePath) {
-
- FileReader fr = null;
- FileWriter fw = null;
- int c = 0;
- try {
- //创建输入流
- fr = new FileReader(sourcePath+"\\"+fileName);
- //创建输出流
- fw = new FileWriter(storePath+"\\"+fileName);
- //输入流直接存进输出流达到文件传输
- while ( (c = fr.read()) != -1) {
- fw.write(c);
- }
- fw.flush(); // 强制刷新流
-
- } catch(Exception e) {
- e.printStackTrace();
-
- }finally {
- try {
- //关闭流
- fr.close();
- fw.close();//
- System.out.println("已经成功复制文件");
- }catch(Exception e){}
- }
- }
- }
复制代码 |
|