① 从键盘接收一个实验编号(我设定的是CH04) ,并创建一个以该实验编号命名的文件夹(实验4学生姓名)。
② 将"实验9学生姓名"的文件夹中指定实验编号(CH04)的所有实验报告文档复制到一个(实验4学生姓名)文件夹中。
③统计出①中以实验编号(实验4学生姓名)命名的文件夹中文档的数量,并列出所有文档的名称、长度和最后修改时间。
我写的程序如下:
import java.io.*;
import java.util.Scanner;
class Accept implements FilenameFilter{
public Accept(String filterRule) {
this.filterRule = filterRule; }
String filterRule;
public boolean accept(File dir, String name) {
return name.startsWith(filterRule);
}
}
public class 实验查询 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String fou=in.nextLine();
File d=new File("E:\Java\实验\实验9学生姓名");
File dd=new File("E:\Java\实验","实验4学生姓名");
Accept fa=new Accept(fou);
File[] file=d.listFiles(fa);
byte[] b=new byte[1024];
try {
dd.createNewFile();
for(int i=0;i<file.length;i++) {
FileInputStream fin=new FileInputStream(file[i]);
FileOutputStream fout=new FileOutputStream(dd);
while(true) {
int byteRead=fin.read(b);
if(byteRead==-1)break;
fout.write(b,0,byteRead);
}
fin.close();
fout.close();}
System.out.println("OK");
}
catch (IOException e) {
e.printStackTrace();
}
File[] ffile=dd.listFiles();
// System.out.println("文档数量:"+ffile.length);
// for(int i=0;i<ffile.length;i++) {
// System.out.println("文档名称:"+ffile[i].getName());
// System.out.println("文档长度:"+ffile[i].length());
// System.out.println("文档最后修改时间:"+ffile[i].lastModified());
// }
}
}
(备注里都是我需要的代码,不过运行时错误的,请帮忙看一下,不胜感激!)
如果加上上面的备注,结果是这样:
从我备注的地方开始,如果取消备注就会报错:
感谢!!!!!!!