每天一点点:android的文件存储和访问

转眼又是半个月过去了,很明显在过去的半个月中,极度沉沦在LOL中不能自拔,不但荒废了学业,还搞得自己人不像人鬼不像鬼,基本上天天想的,讲的,做的都是游戏,当发现自己在这个无底洞中越陷越深的时候,才知道一个人失去自我时的可怕,没有勇气,没有斗志,整天就知道偷塔,GANK……

这里不是说游戏害人啊什么的,想想自己还是喜欢玩游戏的,约上三五个好友,一起撸一把,那还是很韵味的。

话不多说,这个额尔半月白天浑浑噩噩,全无斗志,晚上有把精力耗在了游戏上,导致android的文件存储和访问这个章节中出现了很多漏洞,看来这几个礼拜是没有游戏玩了,准备天天晚上补一点,还有个文件浏览器的项目,真是有点烦啊。好在文件浏览器还有4天交货,不然我撸到明天早上上也高步出来。

刚刚才我看完service的ppt,试着写了两把,还不怎么熟悉,就写点文件方面的吧。

你说一个程序没有文件访问是个什么东西,没错,就是个没用的废物,所以任何语言的高级编程必有IO这个不提,IO是定式的,只要掌握IO的模式,那么几百G的硬盘就随你操弄(貌似有点邪恶的说)

android的IO跟java的IO是一样的,这大大减少了我自学的难度,不过还是有他自己的接口和对象的:

contentprovider/contentrescrove这两个类分别是数据的提供者和接收者,而两者的相互识别就考URI了不没什么好说,一些死套路了,学好活用,你就掌握了,上代码:

//这段代码继承了contentprovider类,重写六个函数,我实现了delete,其余的也一样,按套路来就行了

public class PersonProvider extends ContentProvider {


private DBhelper db;
private static final UriMatcher urimatcher;
private static final String AUTHORITY = "com.newer.comtentprovider";
private static final String PATH_DIR = "person";
private static final int CODE_DIR = 0;
private static final int CODE_ITEM = 1;
private static final String PATH_ITEM = "person/#";

private static final Uri CONTENT_URI = Uri.parse("content://"+AUTHORITY+"/"+PATH_DIR);

static{
urimatcher = new UriMatcher(UriMatcher.NO_MATCH);
urimatcher.addURI(AUTHORITY, PATH_DIR, CODE_DIR);
urimatcher.addURI(AUTHORITY, PATH_ITEM, CODE_ITEM);
}
@Override
public boolean onCreate() {
db = new DBhelper(getContext());
return false;
}


@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
return null;
}


@Override
public String getType(Uri uri) {
switch (urimatcher.match(uri)) {
case CODE_DIR:
return ContentResolver.CURSOR_DIR_BASE_TYPE+PATH_DIR;
case CODE_ITEM:
return ContentResolver.CURSOR_ITEM_BASE_TYPE+PATH_ITEM;
default:
break;
}
return null;
}


@Override
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
return null;
}


@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int count = 0;
SQLiteDatabase database = db.getWritableDatabase();
switch (urimatcher.match(uri)) {
case CODE_DIR:
count = database.delete(DBhelper.TABLE_NAME, selection, selectionArgs);
break;
case CODE_ITEM:
String select = uri.getPathSegments().get(1);
count = database.delete(DBhelper.TABLE_NAME, DBhelper._ID+"="+select, selectionArgs);
break;
default:
break;
}
return count;
}


@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
return 0;
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值