一、文件复制,示例方法代码如下:
/**@b@* 复制单个文件@b@* @param srcPath String 原文件路径,如:c:/test.txt@b@* @param targetPath String 复制后路径@b@* @return 空@b@*/@b@public void copyFile(String srcPath,String targetPath){@b@ try{@b@ int ub=0;@b@ File srcfile=new File(srcPath);@b@ if(srcfile.exists()){//判断文件是否存在@b@ InputStream instr=new FileInputStream(srcPath);//读取文件@b@ FileOutputStream fs=new FileOutputStream(targetPath);//写入目标文件@b@ byte[] buf =new byte[1024];@b@ while ((ub = instr.read(buf)) != -1) {@b@ fs.write(buf,0,ub);@b@ } @b@ instr.close(); @b@ }@b@ @b@ }catch(Exception e){@b@ e.printStackTrace();@b@ }@b@ }
二、文件夹复制,示例方法代码如下:
/**@b@* 复制整个文件夹内容@b@* @param srcPath String 原文件路径,如:c:/srcPath@b@* @param targetPath String 复制后路径@b@* @return 空@b@*/@b@public void copyFolder(String srcPath, String targetPath) {@b@ try {@b@ (new File(targetPath)).mkdirs();// 如果目标文件夹中如有不存在,首先创建出来@b@ File f = new File(srcPath);@b@ String[] fs = f.list();@b@ File tmp = null;@b@ for (int i = 0; i < fs.length; i++) {@b@ if (srcPath.endsWith(File.separator)) {@b@ tmp = new File(srcPath + fs[i]);@b@ } else {@b@ tmp = new File(srcPath + File.separator + fs[i]);@b@ }@b@@b@ if (tmp.isFile()) {@b@ FileInputStream input = new FileInputStream(tmp);@b@ FileOutputStream output = new FileOutputStream(targetPath + File.separator + (tmp.getName()).toString());@b@ byte[] b = new byte[1024];@b@ int len;@b@ while ((len = input.read(b)) != -1) {@b@ output.write(b, 0, len);@b@ }@b@@b@ output.flush();@b@ output.close();@b@ input.close();@b@ }@b@@b@ if (tmp.isDirectory()) {@b@ copyFolder(srcPath + File.separator + fs[i], targetPath + File.separator + fs[i]);@b@ }@b@@b@ }@b@@b@ } catch (Exception e) {@b@ e.printStackTrace();@b@ }@b@ }
总结
java关于File类提供了文件创建、删除和移动,但没有提供复制方法,所以需要自己实现文件和文件夹复制功能。