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 }

 

你可能感兴趣的:(java)