ANDROID对文件的操作
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import android.os.Environment;
- import android.os.StatFs;
- import android.util.Log;
- public class FileUtil {
- private static int bufferd = 1024;
- private FileUtil() {
- }
- /*
- * <!-- 在SDCard中创建与删除文件权限 --> <uses-permission
- * android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!--
- * 往SDCard写入数据权限 --> <uses-permission
- * android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- */
- // =================get SDCard information===================
- public static boolean isSdcardAvailable() {
- String status = Environment.getExternalStorageState();
- if (status.equals(Environment.MEDIA_MOUNTED)) {
- return true;
- }
- return false;
- }
- public static long getSDAllSizeKB() {
- // get path of sdcard
- File path = Environment.getExternalStorageDirectory();
- StatFs sf = new StatFs(path.getPath());
- // get single block size(Byte)
- long blockSize = sf.getBlockSize();
- // 获取所有数据块数
- long allBlocks = sf.getBlockCount();
- // 返回SD卡大小
- return (allBlocks * blockSize) / 1024; // KB
- }
- /**
- * free size for normal application
- *
- * @return
- */
- public static long getSDAvalibleSizeKB() {
- File path = Environment.getExternalStorageDirectory();
- StatFs sf = new StatFs(path.getPath());
- long blockSize = sf.getBlockSize();
- long avaliableSize = sf.getAvailableBlocks();
- return (avaliableSize * blockSize) / 1024;// KB
- }
- // =====================File Operation==========================
- public static boolean isFileExist(String director) {
- File file = new File(Environment.getExternalStorageDirectory()
- + File.separator + director);
- return file.exists();
- }
- /**
- * create multiple director
- *
- * @param path
- * @return
- */
- public static boolean createFile(String director) {
- if (isFileExist(director)) {
- return true;
- } else {
- File file = new File(Environment.getExternalStorageDirectory()
- + File.separator + director);
- if (!file.mkdirs()) {
- return false;
- }
- return true;
- }
- }
- public static File writeToSDCardFile(String directory, String fileName,
- String content, boolean isAppend) {
- return writeToSDCardFile(directory, fileName, content, "", isAppend);
- }
- /**
- *
- * @param director
- * (you don't need to begin with
- * Environment.getExternalStorageDirectory()+File.separator)
- * @param fileName
- * @param content
- * @param encoding
- * (UTF-8...)
- * @param isAppend
- * : Context.MODE_APPEND
- * @return
- */
- public static File writeToSDCardFile(String directory, String fileName,
- String content, String encoding, boolean isAppend) {
- // mobile SD card path +path
- File file = null;
- OutputStream os = null;
- try {
- if (!createFile(directory)) {
- return file;
- }
- file = new File(Environment.getExternalStorageDirectory()
- + File.separator + directory + File.separator + fileName);
- os = new FileOutputStream(file, isAppend);
- if (encoding.equals("")) {
- os.write(content.getBytes());
- } else {
- os.write(content.getBytes(encoding));
- }
- os.flush();
- } catch (IOException e) {
- Log.e("FileUtil", "writeToSDCardFile:" + e.getMessage());
- } finally {
- try {
- if(os != null){
- os.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return file;
- }
- /**
- * write data from inputstream to SDCard
- */
- public File writeToSDCardFromInput(String directory, String fileName,
- InputStream input) {
- File file = null;
- OutputStream os = null;
- try {
- if (createFile(directory)) {
- return file;
- }
- file = new File(Environment.getExternalStorageDirectory()
- + File.separator + directory + fileName);
- os = new FileOutputStream(file);
- byte[] data = new byte[bufferd];
- int length = -1;
- while ((length = input.read(data)) != -1) {
- os.write(data, 0, length);
- }
- // clear cache
- os.flush();
- } catch (Exception e) {
- Log.e("FileUtil", "" + e.getMessage());
- e.printStackTrace();
- } finally {
- try {
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return file;
- }
- /**
- * this url point to image(jpg)
- *
- * @param url
- * @return image name
- */
- public static String getUrlLastString(String url) {
- String[] str = url.split("/");
- int size = str.length;
- return str[size - 1];
- }
- }
下面对代码进行了测试,使用了AndroidJunitTest,当然另外还需要对SDCard查看操作的权限。
1、对android项目的mainfest.xml进行配置,需要注意targetPacket应当与包名保持一致。
- //在mainfest标签下
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
- <instrumentation
- android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.example.mygeneralutil" >
- </instrumentation>
- //在mainfest的application标签下
- <uses-library android:name="android.test.runner"/>
2、简单的测试代码如下:
- import android.test.AndroidTestCase;
- import android.util.Log;
- public class FileUtilTest extends AndroidTestCase {
- public void testIsSdcardAvailable() {
- FileUtil.isSdcardAvailable();
- Log.e("FileUtil", ""+FileUtil.isSdcardAvailable());
- }
- public void testGetSDAllSizeKB() {
- FileUtil.getSDAllSizeKB();
- Log.e("FileUtil", ""+(float)FileUtil.getSDAllSizeKB()/1024/1024);
- }
- public void testGetSDAvalibleSizeKB() {
- FileUtil.getSDAvalibleSizeKB();
- Log.e("FileUtil", ""+(float)FileUtil.getSDAvalibleSizeKB()/1024/1024);
- }
- public void testIsFileExist() {
- FileUtil.isFileExist("example");
- Log.e("FileUtil", ""+FileUtil.isFileExist("example"));
- }
- public void testCreateFile() {
- Log.e("FileUtil", ""+FileUtil.createFile("forexample"));
- }
- public void testWriteToSDCardFileStringStringStringBoolean() {
- fail("Not yet implemented");
- }
- public void testWriteToSDCardFileStringStringStringStringBoolean() {
- FileUtil.writeToSDCardFile("forexample", "123.txt",
- "FileUtil.writeToSDCardFile", "utf-8", true);
- }
- public void testWriteToSDCardFromInput() {
- fail("Not yet implemented");
- }
- public void testGetUrlLastString() {
- fail("Not yet implemented");
- }
- }
ANDROID对文件的操作的更多相关文章
- ANDROID对文件的操作介绍
1. Android遵循MVC设计思想: M(业务层):service V:视图(main.xml). C:Activity 2.使用文件如何对数据进行存储 Activity提供了openFileOu ...
- Android sdcard文件读写操作
这次演示以,安卓原生操作系统 Nexus_6手机进行操作: AndroidManifest.xml配置相关权限: <!-- 增加权限 --> <uses-permission and ...
- [转]Android - 文件读写操作 总结
转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- Android - 文件读写操作 总结
在android中的文件放在不同位置,它们的读取方式也有一些不同. 本文对android中对资源文件的读取.数据区文件的读取.SD卡文件的读取及RandomAccessFile的方式和方法进行了整理. ...
- Android进阶(六)文件读操作
Android中文件的读写操作与Java中文件的读写操作是有区别的.在Java中,读文件操作如以下代码所示: public class FileRead { private static final ...
- Android入门之文件系统操作(一)简单的文件浏览器 (转)
Android入门之文件系统操作(一)简单的文件浏览器 (转) import java.io.File; import java.util.*; import android.app.A ...
- Android入门之文件系统操作(二)文件操作相关指令
(一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 //fileList.getAbsolutePath()为"/ ...
- android的文件操作
http://blog.csdn.net/fenghome/article/details/5668598 android的文件操作要有权限: <uses-permission android: ...
随机推荐
- Vmware 克隆CentOS 网络IP配置
在VMware里克隆出来的CentOS Linux.. ifconfig...没有看到eth0..然后重启网卡又报下面错误. 故障现象: service network restart Shuttin ...
- Oracle EBS-SQL (SYS-20):职责使用菜单2.sql
select frt.responsibility_name, fr.menu_id, fm.menu_name, fr.request_group_i ...
- javascript - 工作笔记 (事件绑定二)
在上篇中的事件绑定方法,相信大家都看到过了. 不过这里有点小小的问题,这些方法,变量都是全局的,难免会与其他的库或者方法发生冲突而被覆盖,因此,我在这里做了小小的封装,如下: JavaScript ...
- 《我是一只IT小小鸟》 读后感
<我是一只IT小小鸟>一只是我想读list中一个本,但是上次去当当买的时候,竟然缺货了...昨天监考,实在无聊,就上网看电子书了,一天就看完了,看得有点仓促,所以理解估计不深. 1.刘帅: ...
- oracle初始安装大小
oracle初始安装大小 /ruiy/ocr/DBSoftware/app/oracle/ruiy/ocr/DBSoftware/app/oraInventory/ruiy/ocr/DBData/or ...
- ios webview 加载含有中文的URL网页显示白屏
1. ios中的webview加载的URL不可以含有中文,解决办法说将中文字符转码, 如下: - (NSString *)URLEncodeString { NSCharacterSet *set = ...
- ASP.NET导出EXCEl方法使用COM.EXCEL不使用EXCEl对象
第一种:导出gridVIEW中的数据,用hansTABLE做离线表,将数据库中指定表中的所有数据按GRIDVIEW中绑定的ID导出 只能导出数据不能去操作相应的EXCEl表格,不能对EXCEL中的数据 ...
- 用ssh建立机器之间的信任机制
继续整理以前的博客,第二弹:用ssh建立机器之间的信任机制 #!/bin/bash #需要远程添加信任机制的机器 REMOTE[]=db-XXX-XXX1.db01 REMOTE[]=db-XXX-X ...
- 学会用这二个键,你就是电脑高手了,一个是Win键,另一个是Ctrl!
学会用这二个键,你就是电脑高手了,一个是windows键,另一个是Ctrl键. 一.windows键 1. 很多时候,需要离开座位去做别的事情,如果对自己的电脑安全很重视,不妨按住windows键后, ...
- Oralce Exp 与 Imp 的使用方法
1.完全:EXP SYSTEM/SYSTEM@ORCL FILE=C:\FULL.DMP LOG=C:\FULL.DMP.LOG FULL=Y BUFFER=819200如果要执行完全导出, ...