永发信息网

传给FileOutputStream的参数是一个系统中并不存在的文件夹!

答案:2  悬赏:60  手机版
解决时间 2021-12-31 15:02
  • 提问者网友:沦陷
  • 2021-12-31 08:33
拷贝函数
public static void copyFile(File src,File des) throws IOException{
if(!src.exists()){//文件不存在
throw new IllegalArgumentException("文件"+src+"不存在");
}
if(!src.isFile()){//不是文件
throw new IllegalArgumentException("不是一个文件");
}
FileInputStream in=new FileInputStream(src);
FileOutputStream out=new FileOutputStream(des);
byte[] buf=new byte[8*1024];
int b;
while((b=in.read(buf, 0, buf.length))!=-1){
out.write(buf, 0, b);
out.flush();//最好加上
}
in.close();
out.close();
}
然后我在测试类中调用
JavaUtil2.copyFile(new File("src/javaIO/JavaUtil2.java"), new File("mass/x.dat"));
此时第一个参数是确实有这个文件,第二个File实例系统中没有这个文件
执行后创建了一个新的x.dat文件,而且内容也成功拷贝了!!但是我传的是一个不存在的文件,为什么能被创建出来而不报错???
谢谢大神解答!!
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-12-31 09:38
Java在文件读写中, 是这样子的:
读的时候,如果发现没有文件,则会抛出文件不存在异常。
写的时候,如果发现文件不存在,则会创建新的文件。
上面的第二个文件是你要把内容写进去,当程序发现不存在时,会自动创建,明白了吧。

有问题欢迎提问,满意请采纳,谢谢!
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-12-31 09:51
你说呢...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯