分析: 要想实现数据的拷⻉肯定是要通过流的⽅式来完成,对于流有两类,由于要拷⻉的内容不⼀定是⽂字数据,所以次此处我们采⽤字节流。 在进⾏⽹络数据传输、磁盘数据都是以字节形式保存数据的。 步骤: 1.将路径变为文件(String path->file) 2.进行检验,源文件必须存在,即srcFile必须存在;目标文件目录必须存在,即dest目录必须存在 3.文件的读取和写入。(字节流的输入输出流) 代码实现:
public static void copyFile(String srcFilePath,String destFilePath) throws FileNotFoundException { //1.String path->file,把路径变为file if(srcFilePath==null||srcFilePath.isEmpty()){ throw new IllegalArgumentException("srcFile must be not null"); } File scrFile=new File(srcFilePath); File destFile=new File(destFilePath); //2.检验工作: srcFile必须存在;dest目录必须存在,不存在创建 if(!scrFile.isFile()||!scrFile.exists()){ throw new IllegalArgumentException(scrFile+"is not File or exists"); } File parent=destFile.getParentFile(); if(!parent.exists()){ parent.mkdirs(); //若父目录不存在,创造 } //3.文件读取和写入 try(InputStream in=new FileInputStream(scrFile); OutputStream out=new FileOutputStream(destFile)){ byte[] buff=new byte[1024*1024]; int len=-1; while((len=in.read(buff))!=-1){ out.write(buff,0,len); } out.flush(); } catch(FileNotFoundException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }