文件工具类---(整理)

  1 import java.io.File;
  2 import java.io.FileOutputStream;
  3 import java.io.IOException;
  4 import java.io.InputStream;
  5 import java.io.OutputStream;
  6 import java.util.ArrayList;
  7 import java.util.List;
  8 
  9 import android.os.Environment;
 10 
 11 import com.androidmediaplayer.model.Mp3Info;
 12 
 13 public class FileUtil {
 14 
 15     /**
 16      * 得到当前外部存储设备的目录
 17      */
 18     private static String SDCardRoot = Environment
 19             .getExternalStorageDirectory().getAbsolutePath() + File.separator;
 20 
 21     /**
 22      * 在SD卡上创建文件
 23      * 
 24      * @throws IOException
 25      */
 26     public static File createFileInSDCard(String fileName, String dir)
 27             throws IOException {
 28         if (isFileExist(fileName, dir)) {
 29             deleteFile(dir, fileName);
 30         }
 31         File file = new File(SDCardRoot + dir + File.separator + fileName);
 32         file.createNewFile();
 33         return file;
 34     }
 35 
 36     /**
 37      * 在SD卡上创建目录
 38      * 
 39      * @param dirName
 40      */
 41     public static File creatSDDir(String dir) {
 42         File dirFile = new File(SDCardRoot + dir + File.separator);
 43         dirFile.mkdirs();
 44         return dirFile;
 45     }
 46 
 47     /**
 48      * 删除SD卡上的文件
 49      * 
 50      * @param dir
 51      *            文件夹目录(已包含根目录)
 52      * @param fileName
 53      *            文件名
 54      * @return
 55      * @throws IOException
 56      */
 57     public static boolean deleteFile(String dir, String fileName)
 58             throws IOException {
 59         File dirFile = new File(SDCardRoot + dir + File.separator + fileName);
 60         return dirFile.delete();
 61     }
 62 
 63     /**
 64      * 删除_data路径的文件
 65      * 
 66      * @param _data
 67      * @return
 68      */
 69     public static boolean deleteAnotherFile(String _data) throws IOException {
 70         File dirFile = new File(_data);
 71         return dirFile.delete();
 72     }
 73 
 74     /**
 75      * 判断SD卡上的文件是否存在
 76      */
 77     public static boolean isFileExist(String fileName, String path) {
 78         File file = new File(SDCardRoot + path + File.separator + fileName);
 79         return file.exists();
 80     }
 81 
 82     public static boolean _isFileExist(String fileName) {
 83         File file = new File(SDCardRoot + "mp3" + File.separator + fileName);
 84         return file.exists();
 85     }
 86     
 87     /**
 88      * 
 89      * @param path 路径加文件名加后缀
 90      * @return
 91      */
 92     public static boolean _isFileExist2(String path){
 93         File file = new File(path);
 94         return file.exists();
 95     }
 96 
 97     /**
 98      * 判断SD卡上的文件夹是否存在
 99      */
100     public static boolean isFilePathExist(String path) {
101         File file = new File(SDCardRoot + path);
102         return file.exists();
103     }
104 
105     public static String getFilePath(String fileName) {
106         return SDCardRoot + "mp3" + File.separator + fileName;
107     }
108 
109     public static void updateFileName(File file, String finalFileName) {
110         String path = file.getAbsolutePath();
111         String orgFileName = path.substring(0, path.lastIndexOf("/") + 1)
112                 + finalFileName;
113         file.renameTo(new File(orgFileName));
114     }
115 
116     /**
117      * 将一个InputStream里面的数据写入到SD卡中
118      */
119     public static File write2SDFromInput(String path, String fileName,
120             InputStream inPutStream) {
121         File file = null;
122         OutputStream outPutStream = null;
123         try {
124             creatSDDir(path);
125             file = createFileInSDCard(fileName, path);
126             outPutStream = new FileOutputStream(file);
127             byte buffer[] = new byte[64];
128             int temp;
129             while ((temp = inPutStream.read(buffer)) != -1) {
130                 outPutStream.write(buffer, 0, temp);
131             }
132             outPutStream.flush();
133         } catch (Exception e) {
134             e.printStackTrace();
135         } finally {
136             try {
137                 if (outPutStream != null) {
138                     outPutStream.close();
139                 }
140             } catch (Exception e) {
141                 e.printStackTrace();
142             }
143         }
144         return file;
145     }
146 
147     /**
148      * 读取目录中的MP3文件的名字和大小
149      */
150     public static List<Mp3Info> getMp3Files(String path) {
151         ArrayList<Mp3Info> mp3Infos = new ArrayList<Mp3Info>();
152         File file = new File(SDCardRoot + File.separator + path);
153         File[] files = file.listFiles();
154         Mp3Info mp3Info = null;
155         int length = files.length;
156         for (int i = 0; i < length; i++) {
157             if (files[i].getName().endsWith("mp3")) {
158                 mp3Info = new Mp3Info();
159                 mp3Info.setMp3Name(files[i].getName());
160                 mp3Info.setMp3Size(String.valueOf(files[i].length()));
161                 String[] temp = mp3Info.getMp3Name().split("\\.");
162                 String lrcName = temp[0] + ".lrc";
163                 mp3Info.setLrcName(lrcName);
164                 mp3Infos.add(mp3Info);
165             }
166         }
167         return mp3Infos;
168     }
169 
170 }
posted @ 2012-05-23 23:14  杰迪-android  阅读(372)  评论(0编辑  收藏  举报