package com.dy.pipIrrWebFile.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 ; 
 | 
    } 
 | 
  
 | 
} 
 |