复制文件代码

今天想起文件复制代码,因为我曾经在网络看到一些文件复制的代码,我cpoy过来使用了一下,结果发现,复制之后的文件是空文件,而控制台却输出去正确,到底出现错误在哪里呢?
查了一下java API文件发现。
FileOutputStream的wirte方法可以实现文件复制


首先我们应该将一个文件看做一个数组。
byte[] bytes=new byte[1024];


然后将这个数组的东西逐个写到另外一个文件中去,就可以实现全部复制了。

实现代码如下:
package com.qj87;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * @author qinjie
 * @file_name CopyFile.java
 * @ctreate_time 2010-8-9 14:49
 */
public class CopyFile {
	public static boolean copy(String location1,String location2){
		try{
			File file_in=new java.io.File(location1);
			File file_out=new java.io.File(location2);
			
			FileInputStream in1=new FileInputStream(file_in);
			FileOutputStream out1=new FileOutputStream(file_out);
			
			byte[] bytes=new byte[1024];
			int c;

			while((c=in1.read(bytes))!=-1){
				out1.write(bytes,0,c);
			}
			in1.close();
			out1.close();
			return(true);  //if sUCcess then return true
		}
		catch(Exception ex){
			ex.printStackTrace();
			return(false);  //if fail then return false
		}

		
	}
		public static void main(String[] args){
			Boolean ff=copy("E:\\abc.jpg","D:\\abc.jpg");
			if(ff==true)
				System.out.println("+++++复制成功++++++");
			else
				System.out.println("------复制失败-----");
			
		}
		
}





   注意,千万不可以将文件关闭方法放进while中去,如果放进去的话,只能是复制了一个byte。打开副本只能得到一个一点。但是用肉眼看,就是一个空白文件。

你可能感兴趣的:(java,C++,c,C#)