楼主我和你一样的面试题目,你看我的
- package com.itheima;
- import java.io.*;
- public class TextDemo
- {
- public static void main(String[] args)
- {
- File file=new File("D:\\练习\\java日记程序");//源文件夹
- File path=new File("D:\\练习\\java日记程序(附件)");//目的文件夹
- if(!path.exists())
- path.mkdir();//当目的路径不存在则创建目的文件夹
- copyfile(file,path);
- change(path);//renameto()方法不会删除修改前的文件。
- delete(path);//将修改前的文件删除
- }
- public static void copy(File file,File path)//对文件进行复制
- {
- FileInputStream fis=null;
- FileOutputStream fos=null;
- try
- {
- fis=new FileInputStream(file);
- fos=new FileOutputStream(path.getPath()+"\\"+file.getName());
- byte[] arr=new byte[1024];
- int count=0;
- while((count=fis.read(arr))!=-1)
- {
- fos.write(arr,0,count);
- }
- }
- catch(IOException e)
- {
- e.printStackTrace();
- }
- finally
- {
- try
- {
- if(fis!=null)
- fis.close();
- }
- catch(IOException e)
- {
- e.printStackTrace();
- }
- try
- {
- if(fos!=null)
- fos.close();
- }
- catch(IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- public static void copyfile(File file,File path)//对原目录文件进行递归复制.java文件
- {
- File[] files=file.listFiles();
- for(int i=0;i<files.length;i++)
- {
- if(files[i].isDirectory())
- {//是文件夹则递归
- File dir=new File(path.getPath()+"\\"+files[i].getName());
- dir.mkdir();
- copyfile(files[i],dir);//保持原样的复制,包括复制文件
- }
- if(files[i].getName().endsWith(".java"))//不是文件夹则判断该文件名是不是以.java结尾
- copy(files[i],path);
- }
- }
- public static void change(File path)//遍历目的路径下的.java文件,调用rename()方法将其变成.txt形式
- {
- File[] files=path.listFiles();
- for(int i=0;i<files.length;i++)
- {
- if(files[i].isDirectory())
- change(files[i]);
- else
- {
- String s=files[i].getName();
- int x=s.indexOf((int)'.');
- s=s.substring(0, x)+".txt";
- files[i].renameTo(new File(path.getPath()+"\\"+s));
- }
- }
- }
- public static void delete(File path)
- {
- File[] files=path.listFiles();
- for(int i=0;i<files.length;i++)
- {
- if(files[i].getName().endsWith(".java"))
- files[i].delete();
- }
- }
- }
复制代码 |