迟到的第14周作业
# 题目
编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
ps:第一次课请先完成前一部分。
# 源代码
## 显示文件夹内容
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Scanner; /** * 浏览文件,及剪切文件 编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。 * ps:第一次课请先完成前一部分。 * * @author 喵 * @date 2019年12月8日上午9:33:31 */ public class CutDemo { static class DirFilter implements FilenameFilter { String type; DirFilter(String type) { this.type = type; } @Override public boolean accept(File dir, String name) { // 过滤掉除要求外的文件 if (name.endsWith(type)) { return true; } return false; } } public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入需查找的目录:"); final String path = input.next(); System.out.println("请输入文件类型:"); final String endName = input.next(); File file = new File(path); // if (!file.exists()) { // System.out.println("请输入正确的路径!"); // return; // } String[] fileName = file.list(new DirFilter(endName)); System.out.println("共有" + fileName.length + "个文件"); for (int i = 0; i < fileName.length; i++) { System.out.println(fileName[i]); } CutFileBufferdeString(path); }
## 剪切文件
private static boolean CutFileBufferdeString(String path1) { System.out.println("请输入需要剪切的文件:(文件名+后缀名)"); Scanner input = new Scanner(System.in); String Name = input.next(); final String FilePath = path1 + "\\" + Name; System.out.println("将文件剪切到:"); String copyPath = input.next(); final String path2 = copyPath + "\\" + Name; File file = new File(FilePath); //要剪切的文件 if (!file.exists()) { System.out.println("文件不存在,剪切失败!"); return false; } try ( InputStream inStream = new FileInputStream(file); BufferedInputStream bInStream = new BufferedInputStream(inStream); OutputStream outStream = new FileOutputStream(path2); BufferedOutputStream bOutStream = new BufferedOutputStream(outStream); ){ int i = -1; //读取出的临时变量 while((i = bInStream.read()) != -1) { bOutStream.write(i); //读取一个字节就写入到缓冲区中 } System.out.println("文件剪切成功!"); file.deleteOnExit(); //程序结束后删除 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } return false; } }
# 测试结果


浙公网安备 33010602011771号