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

拷贝函数publicstaticvoidcopyFile(Filesrc,Filedes)throwsIOException{if(!src.exists()){//文件... 拷贝函数
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文件,而且内容也成功拷贝了!!但是我传的是一个不存在的文件,为什么能被创建出来而不报错???
谢谢大神解答!!
展开
 我来答
zh857872
2015-06-16 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:304万
展开全部
Java在文件读写中, 是这样子的:
读的时候,如果发现没有文件,则会抛出文件不存在异常。
写的时候,如果发现文件不存在,则会创建新的文件。
上面的第二个文件是你要把内容写进去,当程序发现不存在时,会自动创建,明白了吧。

有问题欢迎提问,满意请采纳,谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式