| package com.stylefeng.guns.core.util; | 
|   | 
| import com.stylefeng.guns.core.exception.GunsException; | 
| import com.stylefeng.guns.core.exception.GunsExceptionEnum; | 
| import org.slf4j.Logger; | 
| import org.slf4j.LoggerFactory; | 
|   | 
| import java.io.File; | 
| import java.io.FileInputStream; | 
| import java.io.IOException; | 
| import java.nio.ByteBuffer; | 
| import java.nio.channels.FileChannel; | 
|   | 
| public class FileUtil { | 
|   | 
|     private static Logger log = LoggerFactory.getLogger(FileUtil.class); | 
|   | 
|     /** | 
|      * NIO way | 
|      */ | 
|     public static byte[] toByteArray(String filename) { | 
|   | 
|         File f = new File(filename); | 
|         if (!f.exists()) { | 
|             log.error("文件未找到!" + filename); | 
|             throw new GunsException(GunsExceptionEnum.FILE_NOT_FOUND); | 
|         } | 
|         FileChannel channel = null; | 
|         FileInputStream fs = null; | 
|         try { | 
|             fs = new FileInputStream(f); | 
|             channel = fs.getChannel(); | 
|             ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size()); | 
|             while ((channel.read(byteBuffer)) > 0) { | 
|                 // do nothing | 
|                 // System.out.println("reading"); | 
|             } | 
|             return byteBuffer.array(); | 
|         } catch (IOException e) { | 
|             throw new GunsException(GunsExceptionEnum.FILE_READING_ERROR); | 
|         } finally { | 
|             try { | 
|                 channel.close(); | 
|             } catch (IOException e) { | 
|                 throw new GunsException(GunsExceptionEnum.FILE_READING_ERROR); | 
|             } | 
|             try { | 
|                 fs.close(); | 
|             } catch (IOException e) { | 
|                 throw new GunsException(GunsExceptionEnum.FILE_READING_ERROR); | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 删除目录 | 
|      * | 
|      * @author fengshuonan | 
|      * @Date 2017/10/30 下午4:15 | 
|      */ | 
|     public static boolean deleteDir(File dir) { | 
|         if (dir.isDirectory()) { | 
|             String[] children = dir.list(); | 
|             for (int i = 0; i < children.length; i++) { | 
|                 boolean success = deleteDir(new File(dir, children[i])); | 
|                 if (!success) { | 
|                     return false; | 
|                 } | 
|             } | 
|         } | 
|         return dir.delete(); | 
|     } | 
| } |