首先要导入外包 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. 关于ASP .Net Core 引用dll 一

    一:ASP.Net Core 引用dll文件,不可以直接引用,必须在NuGet中引用才行. 二:如果想引用自己的dll文件,则需要注册NeGet账号,获取到API Key 才行,还需要下载NuGet安 ...

  2. mysql学习(五)-字段属性

    字段属性: unsigned: 无符号类型,只能修饰数值类型: create table if not exists t1(id int unsigned); zerofill:前端填0 //只能修饰 ...

  3. lua学习笔记(1)-基本语法

    ==============变量类型nilnumber(实数)    1 2 3.14 7.65e8string            "hello world" "\n ...

  4. JNDI(转载)

    转自:http://javacrazyer.iteye.com/blog/759485 原理:         在DataSource中事先建立多个数据库连接,保存在数据库连接池中.当程序访问数据库时 ...

  5. Oracle EBS-SQL (WIP-15):检查车间任务物料未发数量与现有量对照.sql

    select we.wip_entity_name                          任务号      ,mfg_lookups_wjs.meaning               作 ...

  6. pagespeed 安装(chrome版和firefox版)

    原文地址:http://blog.sina.com.cn/s/blog_6c9da636010103va.html pagespeed  让你的网站页面打开速度飞起来! 1.firefox版本下的安装 ...

  7. cdoj Dividing Numbers 乱搞记忆化搜索

    //真tm是乱搞 但是(乱搞的)思想很重要 解:大概就是记忆化搜索,但是原数据范围太大,不可能记下所有的情况的答案,于是我们就在记下小范围内的答案,当dfs落入这个记忆范围后,就不进一步搜索,直接返回 ...

  8. 机房收费系统之vb报表的模板的制作(一)

           机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀 ...

  9. 详解CSS网页布局中默认字体样式

    浏览器默认的样式往往在不同的浏览器.不同的语言版本甚至不同的系统版本都有不同的设置,这就导致如 果直接利用默认样式的页面在各个浏览器下显示非常不一致,于是就有了类似YUI的reset之类用来尽量重写浏 ...

  10. 如何删除Oracle数据库

    1>点击开始找Oracle的目录,-->点击[Universal Installer],打开点击[卸载产品] 2>除了oracle_home1 不点外,其他的都勾选. 3>再点 ...