时间:2015-01-19 来源:

Android学习笔记之数据的Sdcard存储方法及操作sdcard的工具类 【综合】

(1)文件的目录

(2)各文件的代码:

ImageCache.java将文件放到cache中的:

package com.example.data_storage_sdcard; import java.io.FileWriter; import com.example.data_storage_sdcard.file.FileService; import android.nfc.Tag; import android.test.AndroidTestCase; import android.util.Log; public class MyTest extends AndroidTestCase { public void saveFileToSdcardTest() { FileService fileService = new FileService(); fileService.saveFileToSdcardRoot("aa.txt", byte[] data) { boolean flag = false; /* * 先判断sdcard的状态,wap前端外包是否存在 */ String state = Environment.getExternalStorageState(); FileOutputStream outputStream = null; File rootFile = Environment.getExternalStorageDirectory(); // 获得sdcard的根路径 /* * 表示sdcard挂载在手机上web前端制作, fileName); try { outputStream = new FileOutputStream(file); try { outputStream.write(data, data.length); flag = true; } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } return flag; } /* * 存放在sdcard下自定义的目录 */ public boolean saveFileToSdcardDir(String fileName, byte[] data) { boolean flag = false; /* * 先判断sdcard的状态,web切图报价是否存在 */ String state = Environment.getExternalStorageState(); FileOutputStream outputStream = null; File rootFile = Environment.getExternalStorageDirectory(); // 获得sdcard的根路径 /* * 表示sdcard挂载在手机上符合w3c标准, fileName)); try { outputStream.write(data, data.length); flag = true; } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } return flag; } /* * 用于读取sdcard的数据 */ public String readContextFromSdcard(String fileName) { String state = Environment.getExternalStorageState(); File rooFile = Environment.getExternalStorageDirectory(); // 获得sdcard的目录 FileInputStream inputStream = null;// 用于度取数据的流 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); // 用于存放独处的数据 if (state.equals(Environment.MEDIA_MOUNTED)) { File file = new File(rooFile.getAbsoluteFile() + "/txt/");// 在sdcard目录下创建一个txt目录 File file2 = new File(file, 0, byte[] data) { // File file = Environment.getExternalStoragePublicDirectory(""); // 保存文件的目录 File file = null; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { /* * 将不同的文件放入到不同的类别中 */ if (fileName.endsWith(".mp3")) { file = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); } else if (fileName.endsWith(".jpg") || fileName.endsWith(".png") || fileName.endsWith(".gif")) { file = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); } else if (fileName.endsWith(".mp4") || fileName.endsWith(".avi") || fileName.endsWith(".3gp")) { file = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES); } else { file = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); } FileOutputStream outputStream = null; try { outputStream = new FileOutputStream(new File(file, 0, String fileName) { boolean flag = false; File file = Environment.getExternalStorageDirectory(); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { File exitFile = new File(file.getAbsoluteFile() + "/" + folder); if (exitFile.exists()) { exitFile.delete(); } } return flag; } } HttpUtils.java访问网络的

package com.example.data_storage_sdcard.http; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; public class HttpUtils { /* * */ public static byte[] getImage(String path) { byte[] data = null; HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(path); try { HttpResponse response = httpClient.execute(httpPost); if (response.getStatusLine().getStatusCode() == 200) { data = EntityUtils.toByteArray(response.getEntity()); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { httpClient.getConnectionManager().shutdown(); } return data; } }

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignRight="@+id/button1" android:layout_marginRight="44dp" android:layout_marginTop="78dp" android:src="@drawable/ic_launcher" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/imageView1" android:layout_marginLeft="96dp" android:layout_marginTop="106dp" android:text="Button" /> </RelativeLayout>

package com.example.data_storage_sdcard.img; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android.os.Environment; public class ImageCache { public static String saveImageCache(String fileName, fileName)); outputStream.write(data, data.length); return file.getAbsolutePath() + "/" + fileName; } catch (Exception e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } return null; } } MainActivity.java

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.data_storage_sdcard" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.data_storage_sdcard" > </instrumentation> <!-- 添加访问sdcard的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 添加访问网络的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="android.test.runner" /> <activity android:name="com.example.data_storage_sdcard.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <uses-library> </uses-library> </application> </manifest>

package com.example.data_storage_sdcard; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import com.example.data_storage_sdcard.http.HttpUtils; import com.example.data_storage_sdcard.img.ImageCache; public class MainActivity extends Activity { private Button button; private ImageView imageView; private ProgressDialog progressDialog; private String imageName; private final String pathString = "http://www.baidu.com/img/bd_logo1.png"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) this.findViewById(R.id.button1); imageView = (ImageView) this.findViewById(R.id.imageView1); progressDialog = new ProgressDialog(this); progressDialog.setTitle("下载提示"); progressDialog.setMessage("load..."); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new MyTask().execute(pathString); } }); } class MyTask extends AsyncTask<String, byte[]> { @Override protected void onPreExecute() { super.onPreExecute(); progressDialog.show(); } @Override protected byte[] doInBackground(String... params) { String name = params[0]; imageName = name .substring(name.lastIndexOf("/") + 1, 0, result); } else { imageView.setImageResource(R.drawable.ic_launcher); } progressDialog.dismiss(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 测试类:

点击次数:14298
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日poj1321棋盘问题(简单的DFS) 【编程语言】2015年07月10日OSI的七层模型与TCPIP的四层模型2015年05月15日Android开发面试经——4.常见Java基础笔试题 【Web前端】2015年03月19日three.js源码注释(七十四)extrasgeometriesExtrudeGeometry.js 【编程语言】2015年02月04日asp调用Word打印的代码2014年01月29日【7】MQTT,mosquitto,EclipsePaho---MQTT消息格式之CONNACK消息分析 【编程语言】2015年06月17日江西省南昌市信通网络科技有限公司web页 【移动开发】2015年05月11日sdut5-3多级派生类的构造函数【综合】2014年11月04日【Android】ListView监听上下滑动(判断是否显示返回顶部按钮) 【Web前端】2015年01月07日jQuery回车实现登录简单实现2014年01月29日mac隐藏.DS_Store 【编程语言】2015年05月12日BZOJ1125【POI2008】PocTreap+Hash 【综合】2015年09月16日剑指offer_面试题18_树的子结构 【编程语言】2015年08月14日Uva10130-SuperSale(0-1背包) 【编程语言】2014年12月11日体系结构之4+1view 【数据库】2015年04月03日2015美团校招部分笔试题 【综合】2014年12月09日数据库-关系数据库标准语言SQL 【云计算】2015年05月07日MySQLStudy之--Mysql数据库备份工具(mysqldump) 【数据库】2015年07月06日【VR】LeapMotion官网文档HandModel(手部模型) 【移动开发】2015年06月01日php环境下利用session防止页面重复刷新的具体实现2014年01月29日Servlet手顺【综合】2015年04月28日如何成为一名黑客全系列说明2014年01月29日黑马程序员——JAVA基础——IO流【综合】2015年08月17日Ubuntu安装配置中的一些问题 【综合】2015年01月30日xcode运行后没看到输出的解决办法2014年11月04日高级HTML5移动应用框架?Ionicv3.1.0发布 ,,2017年04月27日升级androidsdk到5.0时,创建项目出现错误:Noresourcefoundthatmatchesthegivenname'android:Widget.Material.A【编程语言】2014年12月01日12558-EgyptianFractions(HARDversion)【编程语言】2015年04月28日Android自定义可拖拽ListView,思想最重要, 【综合】2015年05月11日惠普发布TouchPad的Android核心源码 ,,2016年06月23日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)