哥们儿你这样高调提问很容易被管理员发现屏蔽的;P,答案在这,这是替你加的注释版赶快收藏:handshake- package com.itheima;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.FilenameFilter;
- import java.io.IOException;
- /**
- * 1,编写一个程序,我想把这个目录下的所有带.java文件拷贝到另一个目录下,拷贝成功以后把后缀名是.java改成.txt
- * @author wfq
- *
- */
- public class Test {
- public static void main(String[] args) throws IOException {
- //文件所在文件夹
- File file = new File("tempfile\\");
- //目标文件夹
- File file2 = new File("tempfile\\abc\\");
-
- copyDemo(file,file2);
-
-
- }
- public static void copyDemo(File file, File targ){
- //判断访问的目录是否存在
- if(file==null)
- throw new NullPointerException("访问的目录不存在..");
- //对目标目录进行判断,如果不存在就创建
- if (!targ.exists()) {
- targ.mkdir();
- }
- //列出访问目录下所有符合过滤条件的文件
- File[] files = file.listFiles(new FilterByName());
- //创建读写流复制文件
- BufferedReader bfr = null;
- BufferedWriter bfw = null;
-
-
- try {
- for (File file2 : files) {
- bfr = new BufferedReader(new FileReader(file2));
- //利用正则表达式修改复制后的文件名
- bfw = new BufferedWriter(new FileWriter(new File(targ,file2.getName().replaceAll("\\.java", ".txt"))));
-
- String len = null;
- while ((len=bfr.readLine())!=null) {
- bfw.write(len);
- bfw.newLine();
- bfw.flush();
- }
- }
- }catch (IOException e) {
- }finally {
- if(bfr!=null)
- try {
- bfr.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if(bfw!=null)
- try {
- bfw.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- }
- }
- //.java文件的过滤器
- class FilterByName implements FilenameFilter{
- @Override
- public boolean accept(File dir, String name) {
-
- return name.endsWith(".java");
- }
-
- }
复制代码 |