首先要导入外包 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. OpenProcess() 函数

    方法名称:OpenProcess 位置:Kernel32.dll OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄. 使用外部函数首先需导入命名空间: System.Runt ...

  2. UNIX环境高级编程--#include "apue.h"

    apue.h头文件为作者自己编写而非系统自带,故需要自行添加! 第一:打开网站 http://www.apuebook.com/第二:选择合适的版本(一共有三个版本,根据书的版本选择)下载源码sour ...

  3. jsp中包含JAVA代码

    在JSP中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了JAVA代码. 在JSP中Scriptlet一共分为三种:        · <%%>:定义局部变量,编写语句    ...

  4. 如果ie6跳转

    try { (function(e) { /i.test(navigator.userAgent)) { window.location = "jump.html"; return ...

  5. struts2笔记09-动态方法调用

    1.action配置 <action name="testDynamic" class="com.test.actions.TestAction"> ...

  6. Scrapy的架构初探

    Scrapy,Python开发的一个web抓取框架. 1,引言 Python即时网络爬虫启动的目标是一起把互联网变成大数据库.单纯的开放源代码并不是开源的全部,开源的核心是“开放的思想”,聚合最好的想 ...

  7. 对简单的正则表达式的理解V1.0

    [^<]* 我得理解也是基本来自官方的解释 [] 我理解是它其中的内容,是指内容哦, 内容是可以选择的 字符 集合 ,比如说  @"<div style="color: ...

  8. C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)

    第一种就直接导出函数名如下代码: #ifdef__cplusplus #define TEXPORT extern "c" _declspec(dllexport) #dlse # ...

  9. CGFloat,CGPoint,CGSize,CGRect

    1.数据类型: CGFloat: 浮点值的基本类型 CGPoint: 表示一个二维坐标系中的点 CGSize: 表示一个矩形的宽度和高度 CGRect: 表示一个矩形的位置和大小 typedef fl ...

  10. 成都UBER优步司机第六组奖励政策

    保底时段详解 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs. ...