第14周作业
题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。ps:第一次课请先完成前一部分。
X类
package ccut.ch.fourteen;
import java.io.FilenameFilter;
class X implements FilenameFilter{
String type;
X(String type){
this.type=type;
}
@Override
public boolean accept(java.io.File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(type);
}
}
TestMain类
package ccut.ch.fourteen;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Scanner;
public class TestMain {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("请输入要查询的文件类型:");
File dir = new File("D:\\java14"); //创建文件对象dir
Scanner scan = new Scanner(System.in);
String type = scan.nextLine(); //接收输入查询文件类型
X f = new X(type);
String[] Files = dir.list(f); //用字符串形式按type类型返回目录下的文件
for (String name : Files) {
System.out.println(name);
}
System.out.println("请输入要剪切的文件名:");
String CFname = scan.nextLine();
System.out.println("请输入新的目录:");
String Path = scan.nextLine();
File cf = new File(Path, CFname);// 此对象是新目录下的同名新文件
BufferedInputStream bin = null;
BufferedWriter bw = null;
int count = 0;
byte[] b = new byte[1024];
try {
cf.createNewFile();
bin = new BufferedInputStream(new FileInputStream(cf));
String str = "";// 接收原文件中的内容
while ((count = bin.read(b, 0, 1024)) != -1) {
str = str + new String(b);
}
bw = new BufferedWriter(new FileWriter(cf, true));
bw.write(str);// 将接收的内容写入新文件中
} catch (IOException e) {
e.printStackTrace();
} finally {
bin.close();
bw.close();
}
cf.delete();// 删除源文件
}
}
运行结果
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~