java IO问题:源文件一开始有内容,一运行程序源文件和目标文件都变成空的了,何解?

importjava.io.*;/*===========================*使用java完成复制文件操作**=======================... import java.io.*;
/*===========================
* 使用java完成复制文件操作 *
* ==========================
* */
public class Copy {
//============主方法========================
public static void main(String args[])throws Exception{
if(args.length!=2){//==判断输入参数是否是两个==
System.out.println("你输入的格式有误,请重新输入。");
System.out.println("例如:java Copy 源文件路径名 目标文件路径名");
System.exit(1);//========系统退出=======
}
if(args[0].equals(args[1])){//==判断源文件、目的文件是否是同一个==
System.out.println("无法复制自身文件。");
System.exit(1);;//========系统退出=======
}
File file=new File(args[0]);//=========找到第一个文件==========
if(file.exists()){//=============文件存在==================
File file1=new File(args[1]);//==========找到第二个文件=========
if(!file1.exists()){
file1.createNewFile();
}
OutputStream output=new FileOutputStream(file);//===输出流===
InputStream input =new FileInputStream(file1);//===输入流===
int temp=0;//===============定义一个整数表示接受的内容=================
while((temp=input.read())!=-1){//=======表示还有数据=======
output.write(temp);//============写入数据=================
}
System.out.println("文件复制成功!");
input.close();
output.close();

}else{
System.out.println("源文件不存在!");
}

}

}
展开
 我来答
东洚jd
2012-10-23 · TA获得超过1299个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:282万
展开全部
你这个方法,1个错误个地方:
如楼上所说,正确的写法,输入流对应的是原文件,输出流对应的是复制目的文件。
不规范的地方2个:
1. java实际开发中,除非特殊需要,一般不允许自行抛出异常,谁发现,谁解决。最重要的是你这个程序,一旦前面出现找不到文件等异常,将不能执行close,会浪费内存。运行多了,会造成死机等,所以自己处理异常,吧close写在finally下。
2.尽管这是字节流的输入输出,但是养成finally下,输出流,强制刷入的好习惯。
百度网友09a1691
2012-10-22 · TA获得超过113个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:103万
展开全部
你把输入流与输出流文件写反了,相当于把一个空的文件复制到一个有内容的文件上,空的把文件的内容覆盖了。

OutputStream output=new FileOutputStream(file);//===输出流===
InputStream input =new FileInputStream(file1);//===输入流===

file与file1写反了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式