zhubaomin
2025-04-17 b63eef2cfb054b1ead234ab93e05a2aa28775d91
pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/java/com/dy/pipIrrWebFile/util/FileUtil.java
New file
@@ -0,0 +1,122 @@
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 ;
   }
}