问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android应用程序中的一些固定的数据应该怎么存储啊。

发布网友 发布时间:2022-04-23 09:02

我来回答

3个回答

热心网友 时间:2022-06-18 19:21

首先了解一下android的数据存储方式:文件流的读取,SQLite,Content Provider以及Preference.。 注:resource和assets中的文件用户方面是只可以读取不能够进行写的操作的。
Content Provider作为程序之间唯一共享数据途径,用在这里不是很合适。所以,
第一种方式,使用FileInputStream,FileOutputStreami类实现文件I/O操作,直接往手机中存储数据。
第二种方式,使用SQLite,通过SQLiteDatabase类中方法操作数据。
第三种方式,Preference用于存储简单数据类型的数据,一些设置信息的保存。个人认为用在这里最合适。 它利用键值对存储的。例:
存储:SharedPreferences.Editor editor =sp.edit();
editor.putString(KEY_TEXT,"yonghu");
editor.commit();
获取 :sp =getPreferences(MODE_PRIVATE);
String result =sp.getString(KEY_TEXT,null);

热心网友 时间:2022-06-18 19:22

方法1:直接打开手机内存输入输出流进行存储数据
需要在清单文件加入读写内存卡权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

//代码

public static void saveToFile(byte[] data){
File file = Environment.getExternalStorageDirectory();
//存储在内存卡mydata文件中
File dataFile = new File(file,"/mydata");
if(!dataFile.exists()){
try {
dataFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}

FileOutputStream fos = null;
try {
fos = new FileOutputStream(dataFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

方法2:少量数据使用sharepreference,基本上是用来存储程序配置
SharedPreferences sp = context.getSharedPreferences("config",Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putBoolean("key", true);
//其他的还有String,int,long等基本类型
editor.commit();

方法3:使用Sqlite

先继承SqliteOpenHelper作为数据库打开帮助类
class Data extends SQLiteOpenHelper{

public Data(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table data("+
"varchar(20) name)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

//使用sql语句进行数据操作
Data data = new Data(this, "asd", null, 1);
SQLiteDatabase database = data.getWritableDatabase();
String sql="insert into data values('test')";
database.execSQL(sql);
database.close();

热心网友 时间:2022-06-18 19:22

如果是字符串,可以在res/value/array里面存放字符串和字符串数组。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 域名中WWW指的是什么 TCP/IP协议有那几层?每一层功能?每一层设备? 3—6岁幼儿有意注意特点 TCP/IP协议到底是四层还是五层?为什么书上写4层,老师又说又5层? 请问带WWW的域名和不带WWW的域名的区别! 如何运用excel公式对很多个表格进行汇总 如何在EXCEL中实现多SHEET分类汇总 c盘空间越来越小怎么把c盘变大 怎么用SSM啊? 如何用软件快速收集多份excel表格并汇总? 常用的公文有哪些 android中的存储方式有哪些 什么是SSM 的应用文生活中最常见的应用文有哪些 excel 多工作表如何进行统计或汇总 ssm框架原理及流程是什么? 为什么3-6岁是孩子培养专注力的重要时期? 常见的几种写作文体各有什么特点 ssm 是咋回事啊 闺蜜头像,卡通版的五人图片 vtp是什么协议 TCP/IP协议分为哪几层?每层具有哪些功能? 如何看懂域名,www是什么意思,com是什么意思,cn是什么意思? vtp是干什么的 android中如何保存登录信息? 参照3-6岁儿童发展指南评价儿童专注力 excel如何实现多表合并? www是什么域名 交换机的trunk和VTP有什么区别? 请问android最安全的数据存储方式是什么? 域名解析是加www好还是不加好?有什么区别? C盘里占用空间太大怎么办 怎样锻炼6岁孩子的注意力?让他们可以注意力集中~~!谢谢~~! 多个excel表格合成一个 软文新解:网站域名前加WWW是什么意思 tcp/ip协议体系大致可分为几层 怎样修改计算机c盘空间 钥淇这名字好吗?,好听吗? 域名有无“www”的区别? vtp协议在现实中的意义,怎么具体使用,用在哪方面?获得的效果是什么?