| package com.dy.dyFile.util; | 
|   | 
| import java.io.File; | 
| import java.io.FileNotFoundException; | 
| import java.io.FileOutputStream; | 
| import java.io.IOException; | 
| import java.io.InputStream; | 
| import java.io.OutputStream; | 
| import java.io.RandomAccessFile; | 
| import java.nio.channels.FileChannel; | 
|   | 
| import org.apache.logging.log4j.LogManager; | 
| import org.apache.logging.log4j.Logger; | 
|   | 
|   | 
| public class FileUtil { | 
|      | 
|     protected static final Logger log = LogManager.getLogger(FileUtil.class.getName()) ; | 
|     /** | 
|      * 保存文件 | 
|      * @param fileAbsolutelyPath 文件绝对路径 | 
|      * @param input | 
|      * @return 保存文件的是否成功的结果 | 
|      */ | 
|     public boolean saveFile(String fileAbsolutelyPath , InputStream input){ | 
|         boolean success = true ; | 
|         if(fileAbsolutelyPath == null || input == null){ | 
|             success = false ; | 
|         }else{ | 
|             OutputStream os = null; | 
|             try { | 
|                 os = new FileOutputStream(fileAbsolutelyPath); | 
|                 byte[] b = new byte[1024] ; | 
|                 int len = input.read(b) ; | 
|                 while(len > 0){ | 
|                     os.write(b, 0, len); | 
|                     len = input.read(b) ; | 
|                     os.flush(); | 
|                 } | 
|             } catch (Exception e) { | 
|                 e.printStackTrace(); | 
|                 success = false ; | 
|             } finally { | 
|                 try { | 
|                     if(os != null){ | 
|                         os.close(); | 
|                     } | 
|                 } catch (IOException e) { | 
|                     e.printStackTrace(); | 
|                 } | 
|             } | 
|         } | 
|         return success ; | 
|     } | 
|     /** | 
|      * 复制文件 | 
|      * @param fromFile | 
|      * @param realPath 绝对路径 | 
|      * @param newFileRelativityPath 相对路径 | 
|      * @return | 
|      */ | 
|     public boolean copyFile(File fromFile, String realPath, String newFileRelativityPath){ | 
|         boolean flag = true ; | 
|         FileChannel fromChannel = null ; | 
|         FileChannel toChannel = null ; | 
|         try { | 
|             fromChannel = new RandomAccessFile(fromFile, "r").getChannel(); | 
|             toChannel = new RandomAccessFile(new File(realPath + newFileRelativityPath), "rw").getChannel(); | 
|             fromChannel.transferTo(0, fromChannel.size(), toChannel); | 
|         } catch (FileNotFoundException e) { | 
|             flag = false ; | 
|             log.error("复制文件出错:" + e.getMessage()) ; | 
|         } catch (IOException e) { | 
|             flag = false ; | 
|             log.error("复制文件出错:" + e.getMessage()) ; | 
|         }finally{ | 
|             try{ | 
|                 if(fromChannel != null){ | 
|                     fromChannel.close() ; | 
|                 } | 
|                 if(toChannel != null){ | 
|                     toChannel.close() ; | 
|                 } | 
|             }catch(Exception e){}finally{} | 
|         } | 
|         return flag ; | 
|     } | 
|      | 
|     /** | 
|      * 删除文件 | 
|      * @param f | 
|      */ | 
|     public boolean deleteFile(File f){ | 
|         boolean flag = false ; | 
|         try{ | 
|             if(f != null){ | 
|                 flag = f.delete() ; | 
|             } | 
|         }catch(Exception e){ | 
|         }finally{} | 
|         return flag ; | 
|     } | 
|      | 
|     /** | 
|      * 删除文件 | 
|      * @param path | 
|      */ | 
|     public boolean deleteFile(String path){ | 
|         boolean flag = false ; | 
|         try{ | 
|             if(path != null && !path.equals("")){ | 
|                 File f = new File(path) ; | 
|                 if(f != null && f.exists()){ | 
|                     flag = f.delete() ; | 
|                 } | 
|             } | 
|         }catch(Exception e){ | 
|         }finally{} | 
|         return flag ; | 
|     } | 
|   | 
| } |