- ------<a target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
复制代码 自己根据所学的视频做的基础测试题第9题,刚开始学,希望大家能给出改进意见,谢谢。- package com.itheima;
- import java.io.*;
- import java.util.ArrayList;
- /**
- * 9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
- * 答;1,获取目录下所有java文件对象存入集合中
- * 2,将集合中所有文件拷贝到指定目录下并将护展名改为.txt
- * @author liwensi
- * */
- public class Test9 {
- public static void main(String[] args){
-
- //定义被拷贝java文件的目录,该目录必须已存在
- File start = new File("D:\\java");
-
- //创建一个集合用于存储java文件对象
- ArrayList<File> list = new ArrayList<File>();
-
- //定义java文件的目的地,硬盘上必须有该盘符。
- File end = new File("E:\\copyjava\\java");
- try {
- //获取目录下所有java文件存入集合中
- getJavaFile(start,list);
-
- //将集合中的元素拷贝到指定目录下
- copyFileList(list,end);
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 将目录下java文件存入集合中
- * @param start 起始目录
- * @param list 集合
- * */
- public static void getJavaFile(File start, ArrayList<File> list) {
-
- //获取目录下的所有文件目录
- File[] arr = start.listFiles();
-
- //遍历数组,并且判断数组中元素是目录还是文件
- for (File file:arr) {
- if (file.isDirectory()) {
- getJavaFile(file,list);
- }
- else if(file.getName().endsWith(".java")) {
- list.add(file);
- }
- }
- }
- /**
- * 将集合中的java文件拷贝到指定目录
- * @param list 存有java文件的集合
- * @param end 目录
- * @throws IOException
- * */
- public static void copyFileList(ArrayList<File> list, File end) throws IOException {
-
- //判断指定目录是否存在,如果不存在则创建所有该目录,包括所有不存在但必需的目录
- if(! end.exists())
- end.mkdirs();
-
- //遍历集合中的元素,使用copyFile方法将文件拷贝到指定目录下
- for (File file:list) {
- copyFile(file,end);
- }
- }
-
- /**
- * 将后缀名.java改为.txt并将文件拷贝到指定目录
- * @param file 后缀名为.java的文件
- * @param end 指定目录
- * @throws IOException
- * */
- public static void copyFile(File file, File end) throws IOException{
- //创建字符输入流与文件关联
- BufferedReader bufr = new BufferedReader(new FileReader(file));
-
- //获取文件名称后将名称后缀改为.txt并创建一个文件对象
- String name = file.getName();
- name = name.substring(0, name.indexOf(".java")) + ".txt";
- File newFile = new File(end + File.separator +name);
-
- //创建输出流与新文件相关联
- BufferedWriter bufw = new BufferedWriter(new FileWriter(newFile));
-
- //将数据一行一行的写入文件
- String line = null;
- while((line = bufr.readLine()) != null) {
- bufw.write(line);
- bufw.newLine();
- }
-
- //关闭资源
- bufr.close();
- bufw.close();
- }
- }
复制代码
|
|