Java一个简单的文件工具集

  1 class FileUtils
  2 {
  3     //文件目录下文件总数目
  4     public static int fileNumber(File dir)
  5     {
  6         int filenumber = 0;
  7         if(dir.exists())
  8         {
  9             for(File file:dir.listFiles())
 10             {
 11                 if(file.isDirectory())
 12                 {
 13                     filenumber = filenumber+fileNumber(file);
 14                 }
 15                 else
 16                 {
 17                     filenumber++;
 18                 }
 19             }
 20         }
 21         return filenumber;
 22     }
 23     
 24     //判断文件是否为图片
 25     public static boolean isImage(File imgFilePath)
 26     {
 27         try
 28         {
 29             FileInputStream imgfis = new FileInputStream(imgFilePath);
 30             byte []imgbyte = new byte[imgfis.available()];
 31             if((imgfis.read(imgbyte))!=-1)
 32             {
 33                 if(imgbyte[0] == (byte) 'G' && imgbyte[1] == (byte) 'I' && imgbyte[2] == (byte) 'F')
 34                 {
 35                     return true;
 36                 }
 37                 else if(imgbyte[1] == (byte) 'P' && imgbyte[2] == (byte) 'N' && imgbyte[3] == (byte) 'G')
 38                 {
 39                     return true;
 40                 }
 41                 else if(imgbyte[6] == (byte) 'J' && imgbyte[7] == (byte) 'F' && imgbyte[8] == (byte) 'I'&& imgbyte[9] == (byte) 'F')
 42                 {
 43                     return true;
 44                 }
 45                 else
 46                 {
 47                     return false;
 48                 }
 49             }
 50         }catch(Exception e)
 51         {
 52             System.out.println(e.toString());
 53             return false;
 54         }
 55         return false;
 56     }
 57 
 58 
 59     //返回该目录下所有文件的文件数组
 60     public static File[] listAllDirectory(File dir)
 61     {
 62         if(dir!=null&&dir.exists())
 63         {
 64             File []finalfile = new File[fileNumber(dir)];
 65             int markfile =0;
 66             int fileln=0;
 67             File files[] = dir.listFiles();
 68             for(int i=0;i<files.length;i++)
 69             {
 70                 if(files[i].isDirectory())
 71                 {
 72                     listAllDirectory(files[i]);
 73                 }
 74                 else
 75                 {
 76                     finalfile[markfile++]=files[i];
 77                 }
 78             }
 79             return finalfile;
 80         }
 81         else
 82         {
 83             return null;
 84         }
 85     }
 86 
 87     
 88     //复制文件(用文件通道)
 89     public static void copyFile(File oldFileAbsolutePath,File newFilePath)
 90     {
 91         File newFileAbsolutePath = new File(newFilePath,oldFileAbsolutePath.getName());
 92         FileInputStream fi = null;
 93         FileOutputStream fo = null;
 94         FileChannel in = null;
 95         FileChannel out = null;
 96         try {
 97             fi = new FileInputStream(oldFileAbsolutePath);
 98             fo = new FileOutputStream(newFileAbsolutePath);
 99             in = fi.getChannel();
100             out = fo.getChannel();
101             in.transferTo(0, in.size(), out);
102         } catch (IOException e)
103             {
104                 e.printStackTrace();
105             }
106             finally
107                 {
108                     try
109                         {
110                             fi.close();
111                             in.close();
112                             fo.close();
113                             out.close();
114                         } catch (IOException e)
115                             {
116                                 e.printStackTrace();
117                             }
118                 }
119     }
120 }

 

posted @ 2015-02-06 12:12  LaudOak  阅读(557)  评论(0编辑  收藏  举报