黑马程序员技术交流社区
标题:
Java编程题
[打印本页]
作者:
xxzlhx
时间:
2015-3-9 12:47
标题:
Java编程题
编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt 这个程序怎么编写,怎么实现功能?
作者:
ko889910
时间:
2015-3-9 13:32
你是需要按照原来的层次结构复制还是只要将所有.java文件复制目标文件夹中
作者:
ko889910
时间:
2015-3-9 13:54
package com.sun.file;
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.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
public class Change {
public static void main(String[] args) {
if (Change.javaToTxt(new File("d:"+File.separator+"pro"), new File("d:"+File.separator+"11")))
System.out.println("文件复制完成:总共"+listFile.size()+"个文件");
else
System.out.println("文件复制失败");
}
private static List<File> listFile = new ArrayList<File>();// 用于存放所有需要copy的文件
public static boolean javaToTxt(File src, File des) {
toList(src);// 先将src中所有.java文件放入list中
if (toCopy(des))
return true;
return false;
}
/**
* 用于将list中所有.java文件复制到目标路径下 并实现改名
*
* @param des
* @return
*/
private static boolean toCopy(File des) {
BufferedReader br = null;
BufferedWriter bw = null;
try {
for (File fileSrc : listFile) {
br = new BufferedReader(new FileReader(fileSrc));
bw = new BufferedWriter(new FileWriter(new File(
des.getAbsolutePath()+File.separator
+ fileSrc.getName().replace(".java", ".txt"))));
String content = null;
while ((content = br.readLine()) != null) {
bw.write(content);
}
bw.flush();
br.close();
bw.close();
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 用于将一个目录中的所有.java文件存入list中
*
* @param file
*/
public static void toList(File file) {
if (!file.exists())
return;
if (file.isFile() && file.getName().endsWith(".java")) {
listFile.add(file);
} else {
File[] files = file.listFiles();
if (files != null)
for (File file2 : files) {
toList(file2);
}
}
}
}
复制代码
10分钟写出来的,没做文件隐藏性判断,输入的参数是D:/pro中的所有.java文件改名写入D:/11文件夹中,没按照层次输出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2