迟到的第14周作业
题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
ps:第一次课请先完成前一部分。
源代码:
package T; import java.io.*; import java.util.Scanner; public class TestMain { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.println("请输入目录:"); String path = in.next(); System.out.println("请输入文件后缀类型:"); String type = in.next(); File[] list = new File(path).listFiles(); for(File file : list) { if(file.isFile()) { if (file.getName().endsWith(type)) { System.out.println(file.getAbsolutePath()); } } } } }
输出结果:

源代码:
Copy.java
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class Copy { public static void main(String[] args) throws IOException { // 用File对象封装目录 File src = getDir(); // 用File对象封装目录 File dest = getDir(); // 调用复制的方法 copyFile(src, dest); } // 复制方法 public static void copyFile(File src, File dest) throws IOException { // 通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组 File[] subFiles = src.listFiles(); // 遍历这个File数组,得到每一个File对象 for (File subFile : subFiles) { // 判断该File对象是否是文件 if (subFile.isFile()) { // 如果不是以java为后缀的不复制,执行下次循环 if (!subFile.getName().endsWith(".java")) { continue; } else { // 新文件File对象//复制前改名 File newDir = new File(dest, subFile.getName().replace(".java", ".txt")); // 用字节输入流封装数据源 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile)); // 用字节输出流封装目的地 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newDir)); byte[] arr = new byte[8 * 1024]; int len; // 判断是否读到文件结尾 while ((len = bis.read(arr)) != -1) { // 将数据写到文件中 bos.write(arr, 0, len); // 刷新缓存流 bos.flush(); } // 关闭流对象 bis.close(); bos.close(); System.out.println("文件复制成功"); } } } } public static File getDir() { Scanner sc = new Scanner(System.in); System.out.println("请输入一个文件夹路径"); while (true) { String line = sc.nextLine(); File file1 = new File(line); if (!file1.exists()) { System.out.println("您输入的路径不存在,请重新输入!"); }else { return file1; } sc.close(); } } }
输出结果:






浙公网安备 33010602011771号