[IO]——FileUtil
2016-04-06 23:39
330 查看
public class FileUtil {//文件的拷贝 public static void copyFile(String srcPath,String destPath) throws IOException ,FileNotFoundException{ //1、建立联系 源 File src=new File(srcPath);//确保源存在,且为文件 File dest=new File(destPath);//目的地,文件可以不存在 if (!src.isFile()) { System.out.println("只能拷贝文件"); throw new IOException("只能拷贝文件"); } //2、选择流 InputStream is=new FileInputStream(src); OutputStream os=new FileOutputStream(dest);//dest不能是文件夹 //3、文件的拷贝 循环+读取+写出 byte[] flush=new byte[1024]; int len=0;//接受长度 //读取 while(-1!=(len=is.read(flush))){ //写出 os.write(flush, 0, len); } os.flush();//强制输出 //关闭流,先打开的后关闭 os.close(); is.close(); } public static void copyFile(File src,File dest) throws IOException ,FileNotFoundException{ if (!src.isFile()) { System.out.println("只能拷贝文件"); throw new IOException("只能拷贝文件"); } //dest为已经存在的文件夹,不能建立于文件夹同名的文件 if (dest.isDirectory()) { System.out.println("不能建立于文件夹同名的文件"); throw new IOException("不能建立于文件夹同名的文件"); } //2、选择流 InputStream is=new FileInputStream(src); OutputStream os=new FileOutputStream(dest); //3、文件的拷贝 循环+读取+写出 byte[] flush=new byte[1024]; int len=0;//接受长度 //读取 while(-1!=(len=is.read(flush))){ //写出 os.write(flush, 0, len); } os.flush();//强制输出 //关闭流,先打开的后关闭 os.close(); is.close(); } public static void copyDir(String srcPath,String destPath){ File src=new File(srcPath); File dest=new File(destPath); copyDir(src, dest); } public static void copyDir(File src,File dest){ if (src.isDirectory()) {//文件夹 dest=new File(dest,src.getName()); } copyDirDetail(src,dest); } public static void copyDirDetail(File src,File dest){ if (src.isFile()) {//文件 try { FileUtil.copyFile(src, dest); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }else if(src.isDirectory()){//文件夹 //确保目标文件夹存在 dest.mkdirs(); //获取下一级的目录或者文件 for(File sub:src.listFiles()){ copyDirDetail(sub, new File(dest, sub.getName())); } } } }
相关文章推荐
- Mysql IO 内存方面的优化
- Node.js 的异步 IO 性能探讨
- SQL Server误区30日谈 第22天 资源调控器可以调控IO
- mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结
- java中的Io(input与output)操作总结(一)
- GO语言的IO方法实例小结
- java中的Io(input与output)操作总结(四)
- C#路径,文件,目录及IO常见操作汇总
- SQL语句实现查询当前数据库IO等待状况
- Java进阶教程之IO基础
- java中的Io(input与output)操作总结(三)
- Java 1.0和Java 1.1 的IO类的比较
- JAVA IO API使用详解
- Java NIO和IO的区别
- Java编程中最基础的文件和目录操作方法详解
- Python中使用select模块实现非阻塞的IO
- Python通过poll实现异步IO的方法
- Python通过select实现异步IO的方法
- Java编程中字节流与字符流IO操作示例
- STM32 IO口双向问题