对手机SD卡的一些操作

首先要导入外包 log4j-1.2.16.jar

代码如下:

  1 package com.car273.util;

  2 

  3 

  4 

  5 import java.io.BufferedReader;

  6 import java.io.File;

  7 import java.io.FileInputStream;

  8 import java.io.FileNotFoundException;

  9 import java.io.FileOutputStream;

 10 import java.io.FileReader;

 11 import java.io.IOException;

 12 import java.io.OutputStream;

 13 

 14 import org.apache.log4j.Logger;

 15 

 16 import android.os.Environment;

 17 import android.os.StatFs;

 18  20 

 21 /**

 22  * 关于SD卡上的操作方法集

 23  * 

 24  * @author Administrator

 25  * 

 26  */

 27 public class SDcardUtil {

 28     /** log4j对象 */

 29     private static final Logger logger = Logger.getLogger(SDcardUtil.class);

 30 

 31     /**

 32      * 判断SD卡是否可用

 33      * 

 34      * @return 有sd卡返回true,无sd卡返回false

 35      */

 36     public static boolean isSDcardCanUse() {

 37         try {

 38             return Environment.getExternalStorageState().equals(

 39                     Environment.MEDIA_MOUNTED);

 40         } catch (Exception e) {

 41             e.printStackTrace();

 42         }

 43         return false;

 44     }

 45 

 46     /** 获取SD卡路径 **/

 47     public static String getSDcardPath() {

 48         File sdDir = null;

 49         boolean sdCardExist = Environment.getExternalStorageState().equals(

 50                 android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在

 51         if (sdCardExist) {

 52             sdDir = Environment.getExternalStorageDirectory();// 获取跟目录

 53         }

 54         if(sdDir ==null){

 55             return "/mnt/sdcard";

 56         }

 57         return sdDir.toString();

 58     }

 59 

 60     /**

 61      * 外部存储空间信息

 62      * 

 63      * @return 当前可用的存储空间大小

 64      */

 65     public static long getExternalStorageSize() {

 66         if (isSDcardCanUse()) {

 67             // 判断外部存储空间

 68             File path = Environment.getExternalStorageDirectory();

 69             StatFs stat = new StatFs(path.getPath());

 70             long blockSize = stat.getBlockSize();

 71             long availableBlocks = stat.getAvailableBlocks();

 72             availableBlocks *= blockSize;

 73             if (availableBlocks >= GlobalData.MIN_SPACE_SIZE)

 74                 return availableBlocks;

 75         }

 76         return 0;

 77     }

 78 

 79     /**

 80      * 获得文件大小

 81      * 

 82      * @return 文件大小 -1表示文件不存在

 83      * @throws FileNotFoundException

 84      * @throws IOException

 85      */

 86     @SuppressWarnings("resource")

 87     public static int getFileSize(File file) throws FileNotFoundException,

 88             IOException {

 89         if (isFileExisted(file))

 90             return (new FileInputStream(file)).available();

 91         else

 92             return -1;

 93     }

 94 

 95     /**

 96      * 判断文件是否存在

 97      * 

 98      * @return

 99      */

100     public static boolean isFileExisted(File file) {

101         return file.exists();

102     }

103 

104     /**

105      * @param bytes

106      *            字节数组

107      * @param flag

108      *            是否追加形式写入文件

109      * @param dirPath

110      *            文件目录(目录不存在则创建目录)

111      * @param fileName

112      *            文件名

113      * @return 1:成功 0:写入过程中失败 -1:流关闭失败

114      * @throws IOException

115      */

116     public static int writeSDCardByBytes(byte[] bytes, boolean flag,

117             String dirPath, String fileName) throws IOException {

118         OutputStream output = null;

119         try {

120             createDirInSDCard(dirPath);

121             output = new FileOutputStream(new File(dirPath + File.separator

122                     + fileName), flag);

123             output.write(bytes);

124             output.flush();

125         } catch (IOException e) {

126             e.printStackTrace();

127             logger.error(Car273Util.dumpThrowable(e));

128             throw e;

129         } finally {

130             try {

131                 if (output != null)

132                     output.close();

133             } catch (IOException e) {

134                 logger.error(Car273Util.dumpThrowable(e));

135                 e.printStackTrace();

136                 return -1;

137             }

138         }

139         return 1;

140     }

141 

142     /**

143      * 根据路径dir创建文件目录

144      * 

145      * @param dir

146      * @return

147      */

148     private static File createDirInSDCard(String dir) {

149         File fileDir = new File(dir);

150         fileDir.mkdir();

151         return fileDir;

152     }

153     

154     /**

155      * 读取文件

156      * @param f 要读取的文件

157      * @return 文件信息字符串

158      * @throws IOException 读取异常

159      */

160     public static String loadFileToString(File f) throws IOException {

161         // long beginTime = System.currentTimeMillis();

162         BufferedReader br = null;

163         String ret = null;

164         try {

165             br = new BufferedReader(new FileReader(f));

166             String line = null;

167             StringBuffer sb = new StringBuffer();

168             while ((line = br.readLine()) != null) {

169                 sb.append(line);

170             }

171             ret = sb.toString();

172         } finally {

173             if (br != null) {

174                 try {

175                     br.close();

176                 } catch (Exception e) {

177                 }

178             }

179         }

180         return ret;

181     }

182     

183     

184 }

 

你可能感兴趣的:(手机)