#数据存储与访问
@单元测试
一.首先要继承AndroidTestCase
二.方法名要以test为前缀
三.最好跑出例外
四.在AndroidManifest.xml添加如下配置
1. <instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.itcast.action" android:label="Tests for My App" />
2.在application元素添加如下配置<uses-library android:name="android.test.runner" />
五.注意在Android中使不能用System.out.println();的如果看打印的结果我们需要在
Window - Show view - Android - LogCat
应用Log.i-信息 log.e错误 log.w警告
Log.i(TAG,"信息")
六.往手机的SDcard卡中存放数据
@android 为数据存储提供了多种方式
文件无非就是读写
一.文件 xml/txt等
1.Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问
,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
2.Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
3.Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
4.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
5.如果要想对sdcard进行读写需要在AndroidManifest.xml设置一下信息
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
应用举例
package cn.itcast.files.service;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
public class FileService {
public static final String TAG = "FileService";
private Context context;
public FileService(Context context) {
this.context = context;
}
public void saveName(String name) throws Throwable{
FileOutputStream fos = context.openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
fos.write(name.getBytes());
fos.close();
}
public void saveNameToSdCard(String name) throws Throwable {
//在保存数据的时候要判断是否存在是否有写保护
//Environment.getExternalStorageDirectory() == new File("/sdcard");
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
Log.e(TAG, "不可读");
return ;
}
File file = new File("/sdcard/itcast.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(name.getBytes());
fos.close();
}
public String getNameWidthSdcard() throws Throwable {
File file = new File("/sdcard/itcast.txt");
FileInputStream fis = new FileInputStream(file);
byte bytes[] = new byte[1024];
int len = -1;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = fis.read(bytes)) != -1) {
baos.write(bytes,0, len);
}
fis.close();
baos.close();
byte[] name = baos.toByteArray();
return new String(name);
}
public String getName()throws Throwable {
FileInputStream fis = context.openFileInput("itcast.txt");
byte bytes[] = new byte[1024];
int len = -1;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = fis.read(bytes)) != -1) {
baos.write(bytes,0, len);
}
fis.close();
baos.close();
byte[] name = baos.toByteArray();
return new String(name);
}
}
访问其他应用
package cn.itcast.other;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.test.AndroidTestCase;
import android.util.Log;
public class OtherTest extends AndroidTestCase {
public static final String TAG = "Other";
public void testSaveName() throws Exception{
File file = new File("/data/data/cn.itcast.files/files/itcast.txt");
FileOutputStream fos = new FileOutputStream(file);
String name = "wangguangwangguangsdfsdfsd";
fos.write(name.getBytes());
fos.close();
}
public void testGetName() throws Exception{
File file = new File("/data/data/cn.itcast.files/files/itcast.txt");
FileInputStream fis = new FileInputStream(file);
byte bytes[] = new byte[1024];
int len = -1;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = fis.read(bytes)) != -1) {
baos.write(bytes,0, len);
}
fis.close();
baos.close();
byte[] name = baos.toByteArray();
Log.i(TAG, new String(name));
}
}
二.SharedPreferences
三.SQLLite数据库
四.内容提供者(Content provider)
五.网络
详细解决方案
Android 资料读写 + sdcard + 文件的属性
热度:392 发布时间:2016-05-01 15:59:21.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android RadioButton如何设置默认选中
- android 怎么重新设置锚点
- android 图片对象获取的有关问题
- android 关于服务连接的疑义
- android 怎么实现对view的放大和缩小
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java) 中文乱码的有关问题
- android 动态设立控件高度
- Android test project 编译方法
- android 4.03启动出错,显示"Encryption Unsuccessful"该如何解决
- Android 下面的listView的动态效果怎么实现的?求源代码,多谢
- Android?Palm?Symbian?Windows Mobile?学哪个有“钱图”?解决方案
- Android 开发语言,该怎么解决
- 单个人去做手机开发选什么平台好?android,iphone?解决办法
- Android 虚拟机崩溃的有关问题
- 想学学移动平台的开发 android 还是windows phone7好啊该怎么处理
- Android 上的如何读写设备文件
- Android 2.2 API 汉语文档系列(3) —— AccessibilityService
- 【先睹为快】ArcGIS Android SDK上一版本新特性
- ArcGIS for Android app v2.0.4公布
- android.hardware.USB种介绍
- android linux开发 在线电子书解决方案