在操作系统里面有一个copy命令,这个命令的主要功能是可以实现文件的拷贝处理,现在要求模拟这个命令,通过初始化参数输入拷贝的源文件路径与拷贝的目标路径实现文件的拷贝处理。
需求分析:
·需要实现文件的拷贝操作,那么这种拷贝就有可能拷贝各种类型的文件,所以肯定使用字节流;
·在进行拷贝的时候有可能需要考虑到大文件的拷贝问题;
实现方案:
·方案一:使用InputStream将全部要拷贝的内容直接读取到程序里面,而后一次性的输出到目标文件;
|- 如果现在拷贝的文件很大,基本上程序就死了;
·方案二:采用部分拷贝,读取一部分输出一部分数据,如果现在要采用第二种做法,核心的操作方法:
|- InputStream:public int read(byte[] b) throws IOException;
|- OutputStream:public void write(byte[] b,int off, int len) throws IOException;
范例:实现文件拷贝处理
1 importjava.io.File;2 importjava.io.FileInputStream;3 importjava.io.FileOutputStream;4 importjava.io.InputStream;5 importjava.io.OutputStream;6 class FileUtil { //定义一个文件操作的工具类
7 private File srcFile ; //源文件路径
8 private File desFile ; //目标文件路径
9 publicFileUtil(String src,String des) {10 this(new File(src),newFile(des)) ;11 }12 publicFileUtil(File srcFile,File desFile) {13 this.srcFile =srcFile ;14 this.desFile =desFile ;15 }16 public boolean copy() throws Exception { //文件拷贝处理
17 if (!this.srcFile.exists()) { //源文件必须存在!
18 System.out.println("拷贝的源文件不存在!");19 return false ; //拷贝失败
20 }21 if (!this.desFile.getParentFile().exists()) {22 this.desFile.getParentFil