zzxiann 2020-06-11 22:55 采纳率: 0%
浏览 152

关于输入/输出流复制的,我写的程序会报错。感谢回答!

① 从键盘接收一个实验编号(我设定的是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());
// }

}
}
(备注里都是我需要的代码,不过运行时错误的,请帮忙看一下,不胜感激!)

如果加上上面的备注,结果是这样:

图片说明

从我备注的地方开始,如果取消备注就会报错:

图片说明

感谢!!!!!!!

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-06-12 00:08
    关注

    File[] ffile=dd.listFiles();
    这一行返回了null,file为空。
    dd是文件,不是文件夹吧

    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料