> /*  * 文件拷贝  *   * 模拟DOS系统的文件拷贝程序,实现字节流的综合使用。  * 要求:  *
> 		在Dos系统之中文件拷贝的命令:copy源文件路径 目标文件路径。  * 		如果要想实现文件的拷贝操作,那么现在有两种做法:  *
> 		方法一: 将所有的文件内容一次性读取到程序之中,而后一次性输出;  * 				需要开辟一个与文件大小一样的数组,但是如果文件过大呢?
> 程序就崩溃了  * 		方法二:采用边读边输出的方式,那么现在就不会占用过大的内存空间。  *
> 			由于现在有可能要拷贝二进制数据,那么一定使用字节流会比较合适一些  *   * 
> 这个时候发现,的确实现了拷贝,但是这个拷贝的速度实在是有些受不了。现在的程序属于单个字节拷贝  * 
> 每次读取一个字节,那么这个循环所耗费的时间就太长了。  *  while((temp = inputStream.read())!=-1) 
> /// 每次读取单个字节 	{ 	 	outputStream.write(temp);  /// 输出单个字节 	}  *
> 如果要想改变以上代码的性能问题,那么久必须采用部分数据读取并保存的方式  * 1 InputStream  read(byte b) 
> 将内容读取到字节数组之中,如果没有数据了返回的是-1 否则就是长度  * 2 outputStream  public void
> write(byte[] b, int off,int len) throws IOException  *
> 	要设置的字节数组时间上就是在read()方法里面使用的数组  *  一定是从字节数组的第0个元素开始输出,输出读取的数据长度  * 
> 	byte data[] = new byte[1024];  /// 每次读取1024个字节
> 		///将每次读取的数据字节数组保存在数组里面,并且返回读取的个数 		while((temp =
> inputStream.read(data))!=-1)  /// 每次读取单个字节 		{
> 		 	outputStream.write(data,0,temp);  /// 输出数组 		}
> 		  *  在以后的代码编写过程之中一定会给你一个InputStream字节流对象,需要按照以上的做法使用同样的方式  *  进行内容的输出  * 			  *

*/

package wenjiancaozuo;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class wenjiankaobei {

	public static void main(String[] args) throws IOException {
		// TODO 自动生成的方法存根
		long stary = System.currentTimeMillis();
		if(args.length!=2)  /// 初始化参数不足两位
		{
			System.out.println("aaaaaa");
			System.exit(1);/// 程序退出执行
		}
		
		/// 如果输入参数正确了,那么应该进行文件的验证
		File inFile = new File(args[0]); /// 第一个是源文件路径
		if(!inFile.exists())  /// 源文件不存在
		{
			System.out.println("源文件不存在");
			System.exit(1);/// 程序退出执行
		}
		/// 如果源文件存在。那么需要定义输出文件,同时要考虑到输出文件有目录
		File outFile = new File(args[1]);
		if(!outFile.getParentFile().exists()) /// 输出文件路径不存在
		{
			outFile.getParentFile().mkdirs(); ///创建目录
		}
		
		/// 实现文件内容拷贝
		InputStream inputStream = new FileInputStream(inFile);
		OutputStream outputStream = new FileOutputStream(outFile);
		/// 实现文件拷贝
		int temp =0; /// 保存每次读取的内容
//		while((temp = inputStream.read())!=-1)  /// 每次读取单个字节
//		{
//		 	outputStream.write(temp);  /// 输出单个字节
//		}
		
		byte data[] = new byte[1024];  /// 每次读取1024个字节
		///将每次读取的数据字节数组保存在数组里面,并且返回读取的个数
		while((temp = inputStream.read(data))!=-1)  /// 每次读取单个字节
		{
		 	outputStream.write(data,0,temp);  /// 输出数组
		}
		
		inputStream.close();
		outputStream.close();
		long end = System.currentTimeMillis();
		System.out.println(stary-end);
	}

}