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

代码如下:

 package com.car273.util;

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream; import org.apache.log4j.Logger; import android.os.Environment;
import android.os.StatFs; /**
* 关于SD卡上的操作方法集
*
* @author Administrator
*
*/
public class SDcardUtil {
/** log4j对象 */
private static final Logger logger = Logger.getLogger(SDcardUtil.class); /**
* 判断SD卡是否可用
*
* @return 有sd卡返回true,无sd卡返回false
*/
public static boolean isSDcardCanUse() {
try {
return Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
} catch (Exception e) {
e.printStackTrace();
}
return false;
} /** 获取SD卡路径 **/
public static String getSDcardPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
}
if(sdDir ==null){
return "/mnt/sdcard";
}
return sdDir.toString();
} /**
* 外部存储空间信息
*
* @return 当前可用的存储空间大小
*/
public static long getExternalStorageSize() {
if (isSDcardCanUse()) {
// 判断外部存储空间
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
availableBlocks *= blockSize;
if (availableBlocks >= GlobalData.MIN_SPACE_SIZE)
return availableBlocks;
}
return 0;
} /**
* 获得文件大小
*
* @return 文件大小 -1表示文件不存在
* @throws FileNotFoundException
* @throws IOException
*/
@SuppressWarnings("resource")
public static int getFileSize(File file) throws FileNotFoundException,
IOException {
if (isFileExisted(file))
return (new FileInputStream(file)).available();
else
return -1;
} /**
* 判断文件是否存在
*
* @return
*/
public static boolean isFileExisted(File file) {
return file.exists();
} /**
* @param bytes
* 字节数组
* @param flag
* 是否追加形式写入文件
* @param dirPath
* 文件目录(目录不存在则创建目录)
* @param fileName
* 文件名
* @return 1:成功 0:写入过程中失败 -1:流关闭失败
* @throws IOException
*/
public static int writeSDCardByBytes(byte[] bytes, boolean flag,
String dirPath, String fileName) throws IOException {
OutputStream output = null;
try {
createDirInSDCard(dirPath);
output = new FileOutputStream(new File(dirPath + File.separator
+ fileName), flag);
output.write(bytes);
output.flush();
} catch (IOException e) {
e.printStackTrace();
logger.error(Car273Util.dumpThrowable(e));
throw e;
} finally {
try {
if (output != null)
output.close();
} catch (IOException e) {
logger.error(Car273Util.dumpThrowable(e));
e.printStackTrace();
return -1;
}
}
return 1;
} /**
* 根据路径dir创建文件目录
*
* @param dir
* @return
*/
private static File createDirInSDCard(String dir) {
File fileDir = new File(dir);
fileDir.mkdir();
return fileDir;
} /**
* 读取文件
* @param f 要读取的文件
* @return 文件信息字符串
* @throws IOException 读取异常
*/
public static String loadFileToString(File f) throws IOException {
// long beginTime = System.currentTimeMillis();
BufferedReader br = null;
String ret = null;
try {
br = new BufferedReader(new FileReader(f));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
}
ret = sb.toString();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
}
}
}
return ret;
} }

对手机SD卡的一些操作的更多相关文章

  1. [计算机故障]为什么我的手机SD卡一打开就是说“你的磁盘未格式化,现在需要格式化吗”?

    现在随着智能手机的普及,越来越多的人使用到了手机SD卡.也有的是micro SD(更小一些). 最近一个朋友说,为什么我的手机SD卡插到手机里一打开就是说“你的磁盘未格式化,现在需要格式化吗?” 但是 ...

  2. 数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据,解决图片恢复后打不开的问题

    数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据.解决图片恢复后打不开的问题. 用过非常多数据恢复软件.最早EasyRecovery pro.恢复过U盘.手机SD卡,硬盘数据.但如今下载不了最新版 ...

  3. Android 读取手机SD卡根目录下某个txt文件的文件内容

    1.先看activity_main.xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/and ...

  4. NUC972当检测到sd卡时,在sd卡驱动中操作gpio开启sd卡的电源,解决sd卡因低电压有时识别不正常的问题

    1.根据硬件原理图,找到对应控制sd卡电源的gpio引脚,并在sd卡驱动文件中定义操作改该引脚的宏 2.在sd卡检测函数中,使用glib增加开sd卡电源的操作,如此当sd卡每次被检测到时,驱动中就会自 ...

  5. android 数据存储&lt;一&gt;----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局.线性布局,绝对布局.表格布局.标签布局等,各个布局能够嵌套的. 本文的布局文件就是线性布局的嵌套 <LinearLayout ...

  6. Android之——清理手机SD卡缓存

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47375595 眼下,市场上非常多Android手机软件都具有清理SD卡缓存的功能, ...

  7. android 数据存储----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局,线性布局,绝对布局,表格布局,标签布局等.各个布局能够嵌套的.本文的布局文件就是线性布局的嵌套 <LinearLayout x ...

  8. android 64 sd卡读写的操作

    package com.itheima.writesd; import java.io.File; import java.io.FileNotFoundException; import java. ...

  9. FPGA SD 卡 之 乒乓操作 、同步fifo

    这里记录一个实际的需要使用乒乓操作的例子:读sd卡数据的时,在spi的模式下.发送单数据块的读取命令,在回应之后会有 512字节的数据.使用乒乓操作,可以用两个八位的寄存器,就可以完成连续的512字节 ...

随机推荐

  1. PHP 导出 Excell

    Vendor('PHPExcel179.PHPExcel');$objPHPExcel = new PHPExcel(); //创建PHPExcel对象//设置属性$objPHPExcel->g ...

  2. 查看当前运行的SQL语句

    WITH sess AS ( SELECT es.session_id, database_name = DB_NAME(er.database_id), er.cpu_time, er.reads, ...

  3. TensorFlow 深度学习笔记 Logistic Classification

    Logistic Classification Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地 ...

  4. MYSQL 没有varchar(max)这个类型。

    背景: MYSQL 中不可以用varchar(max) 这种类型列来建立表 -------------------------------------------------------------- ...

  5. MacBook USB Type-C接口很美?其实是缩水的!

    苹果终于推出了12寸的全新MacBook,拥有2304×1440的高分辨率.蝶式结构全尺寸键盘.新的触摸板.14nm Core M处理器和无风扇设计,以及新的USB 3.1 Type-C接口.可以预料 ...

  6. WebMatrix安装和使用

    官网:http://www.microsoft.com/web/webmatrix/ 一直觉得dreamweaver已经过时了,很多新的库都不支持.而且,启动慢,占用内存多,是时候换一个ide了. h ...

  7. [置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了

    转载请表明地址:http://blog.csdn.net/jackystudio/article/details/11730601 不过明眼人一看就知道起飞的不是飞机,是背景,相对运动引起的错觉. 1 ...

  8. DLL中传递STL参数,vector对象作为dll参数传递等问题(转)

    STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下 ...

  9. printdir-deldir-bmp

    #include<unistd.h> #include<stdio.h> #include<dirent.h> #include<string.h> # ...

  10. AndroidUI 引导页面的使用

    一个应用程序都少不了欢迎页面和引导页面,本文主要讲如何制作一个引页面: 首页所有的目录结构: 新建Welcome引导页面和Activity: <RelativeLayout xmlns:andr ...