读取和存储
㈠ 数据存储和读取该怎么实现
Android应用开发中,给我们提供了5种数据的存储方式
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:
第一种: 使用SharedPreferences存储数据
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
以下为示例代码:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取SharedPreferences对象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入数据
Editor editor = sp.edit();
editor.putString("STRING_KEY", "string");
editor.putInt("INT_KEY", 0);
editor.putBoolean("BOOLEAN_KEY", true);
editor.commit();
//返回STRING_KEY的值
Log.d("SP", sp.getString("STRING_KEY", "none"));
//如果NOT_EXIST不存在,则返回值为"none"
Log.d("SP", sp.getString("NOT_EXIST", "none"));
}
}
第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
文件可用来存放大量数据,如文本、图片、音频等。
默认位置:/data/data/ >/files/***.***。
代码示例:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}
第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite。
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
读取文件示例:
public void load(){
try {
FileInputStream inStream=this.openFileInput("a.txt");
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
while((length=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
inStream.close();
text.setText(stream.toString());
Toast.makeText(MyActivity.this,"Loaded",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}
第四种 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍
第五种 网络存储数据 也就是说将数据保存在服务器,android上只需要通过httpclient发起一个请求,向服务器获取数据即可
火台,驿马,电报机,电话等。人类储存信息的工具有:牛骨﹑竹
㈡ 怎么让手机的APP读取手机状态和储存权限
你好
一、手机存储权限是下载手机软件,保证软件能在手机上正常使用的的一种权限。
二、设置。
1、设置默认存储位置。打开设置,选择存储,选择默认存储位置,设置到需要的位置。
2、打开需要设置的软件,会自动弹出权限提示设置,选择就OK。
3、打开权限设置软件,设置允许设置或修改存储位置就可以了。
三、开启手机的权限,需要使用专门的root工具,可以使用电脑版的应用宝进行操作,它是专门root手机的工具,成功率很高,几分钟就能成功。将手机连接电脑,打开软件,匹配手机的型号后,点击里面的一键root的图标,根据软件的提示操作对手机进行root。
内部存储指的是运行内存,就相当于电脑的硬盘系统分区C盘+内存条。是安装系统,提供程序运行的场所的。
手机存储,指的是手机内置的的存储空间,也叫内置SD卡。就是相当于电脑的C盘以外的分区,可以安装程序,也可以存储音乐、视频、各种文件。
建议把用户程序安装到内置SD卡,这样系统和软件的大部分临时文件会自动存储到SD卡,系统稳定,速度快,也比较省电。
手机内存部储存指的是也就是运行内存---ram,一般1-4G左右;手机存储空间指的是rom,大小因手机而异,例如苹果的8G,16G,32G就是这种内存,也称手机存储,是手机自带的,不可扩展。
随机存取存储器(random access memory,RAM)又称作"随机存储器",是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
ROM 是 ROM image(只读内存镜像)的简称,常用于手机定制系统玩家的圈子中。 一般手机刷机的过程,就是将只读内存镜像(ROM image)写入只读内存(ROM)的过程。 常见的 ROM image 有 img、zip 等格式,前者通常用 fastboot 程序通过数据线刷入(线刷),后者通常用 recovery 模式从 sd刷入(卡刷),故 img 镜像也被称为线刷包,zip 镜像也被称为卡刷包。 国内的定制系统开发者,经常会陷入自己的产品究竟是应该称为 OS还是 UI的争论,为了避免此类争论和表示谦虚,会自称为 ROM。很多定制系统玩家也会统一将定制系统称为 ROM。
安卓系统的权限有2种,一种是权限管理,另一种是授权管理。1、权限管理:这个是应用程序,读取手机用户的联系人、短信、地理位置等等有关信息的权限,比如用户在使用导航时,如果不允许导航软件读取地理位置信息,则无法完成和使用。2、授权管理:这是用户对系统应用程序进行读写操作的权利,安卓系统的就是root权限,获取root权限后,用户就可以对系统的以及第三方的应用进行读写操作,比如卸载、移动等等。
手机设置里面的内部存储和手机存储是什么意思?有什么不同_ …… 》 内部存储指的是运行内存,就相当于电脑的硬盘系统分区C盘+内存条.是安装系统,提供程序运行的场所的. 手机存储,指的是手机内置的的存储空间,也叫内置SD卡.就是相当于电脑的C盘以外的分区,可以安装程序,也可以存储音乐、视频、各种文件. 建议把用户程序安装到内置SD卡,这样系统和软件的大部分临时文件会自动存储到SD卡,系统稳定,速度快,也比较省电.
手机的内部存储与手机存储分别指的是什么?_ …… 》 手机存储指的是手机存储卡,一般是microsd(tf卡),内部存储是指你的手机自带的存储空间,内部存储是手机自带的存储空间不能调节的,你可以在安装软件的时候选择手机卡存储就可以将软件安装在手机卡上不会占用手机内存.
安卓手机的内部存储空间和手机存储是什么?_ …… 》 1. 内部存储-就是指手机出厂时自身的存储空间,也可以说是ROM,就是手机系统固件和软件默认安装的地方.在没获得root权限之前无法对这里面的东西进行随意读写.比如苹果的16G版,内部存储就是指16G里面除了手机系统外的另外的存储空间.2. 手机存储-通常是指手机内置的SD卡,其实跟扩展的SD卡功能一样,只是这是设置在手机主板上的,不能随意更改,是固定的空间,跟手机系统是不在一起的.当手机需要恢复出厂设置时,不会动到手机存储上的东西.
手机存储 内部存储空间 RAM分别是什么,有什么不同 …… 》 内部存储空间ROM是安装存储软件(如操作系统、杀毒软仲、音频视频等)相当于电脑的硬盘.
安卓手机的“内部存储空间”“内置存储卡”“外置存储卡”分别是什么?_ …… 》 它们是用来持久保存数据(文件)的存储空间,跟手机的内存(RAM,掉电数据就没了)一点儿关系都没有.能显示这三个存储分类的安卓手机一般内置一块eMMC卡(4GB到32GB不等),这块卡一部分被划出来当ROM装系统(即所谓的/...
内部存储、手机存储的区别?_ …… 》 内部存储、手机存储的区别:一、机身内存(ROM)1、手机的内部存储空间(过去几年主要是存储卡,现在基本上是机箱了),其设置方式通过存储芯片直接安装在设备内部,可以支持和维护设备的正常运行.2、通常安装软件,下载数据,...
手机储存权限怎么设置_ …… 》 Android支持外部存储(case-insensitive filesystem with immutable POSIX permission classes and modes). 外部存储可以通过物理介质提供(如SD卡),也可以通过将内部存储中的一部分封装而成,设备可以有多个外部存储实例. 访问外部...
手机默认储存是内部储存空间,怎样设置成sd卡? …… 》 三星手机默认存储文件到扩展卡的操作方法:1.若使用照相机拍摄的图片/视频,可提前设置存储路径为外置sd卡.操作方法:打开照相机-设置-存储器-内存卡 2.若是通过手机自带浏览器下载文件(歌曲、视频、图片等),建议您在浏览器中更改存储路径:浏览器-菜单键-设定-高级设定-默认存储器-下载路径-external_sd.
内部存储、手机存储的区别?_ …… 》 一、机身内存(ROM) 手机的内部存储空间,其设置方式通过存储芯片直接安装在设备内部,可以支持和维护设备的正常运行. 通常安装软件,下载数据,文件,缓存视频,快照保存照片或类似数据,都是通过机箱内存存储的,内存容量较大...
关于手机储存,为什么我的东西不能存储到sd卡里面,我的手机是金立800,手机有内部储存空间,内部存_ …… 》 2.3的系统的话,是默认手机内部储存的,没有ROOT权限的话是无法自由选择储存位置的,有些东西限制你必须得存到手机内部储存里才可以用,要是4.0系统开始的话,是可以自由存储手机内部与SD卡的,下载东西后点击安装会出现选择安装到手机内部储存或SD卡的选项,你的手机要是2.3系统的话,只能ROOT破解之后才可以把软件储存到SD卡里,望采纳
望采纳祝你好运
㈢ 如何用SQL语句实现图片的存储和读取
如:
System.IO.MemoryStream mstream = new System.IO.MemoryStream();
//将控件htmlRichTextBox_imgText里面的内容全部当作图片存储
this.htmlRichTextBox_img.SaveFile(mstream, RichTextBoxStreamType.RichText);
//将流转换成数组
byte[] bWrite = mstream.ToArray();
jzdoc.Entities.s_sample obj = new s_sample();
...................................
obj.img1 = bWrite;
..............................................
jzdoc.dbsvr.Default.Save<s_sample>(obj);
㈣ 硬盘是如何存储和读取零碎的文件的
如果数据量不是很大(G级别以下),文件不是特别零碎,可以直接存在硬盘上。
但是如果数据量已经/可能超过T级别,或者文件小且零碎,建议还是放在HDFS等分布式文件系统上。
我存储爬虫的html以及图片数据,是通过HDFS的MapFile格式存储的。MapFile是个已排序的键值对文件格式,我的键采用的是url的hash+采集时间,值就是文件内容。并且封装了原生的MapFile.Reader实现了读取和一定程度的缓存(目前只用了LRU)。
在HDFS提倡一次写入,多次读取的前提下,文件的更新只能是通过失效旧,使用新的策略。即把旧的元数据标记为失效,插入新的元数据,并把更新的文件写入HDFS。读取是通过新的元数据定位到文件。同时,要定期的清除已失效的文件,即把未失效的元数据读出来,将对应的文件写到新的MapFile,删除旧的MapFile,即可实现物理删除。
当然还可以使用HBase。HBase是面向列的,二进制存储的,可横向拓展的NoSQL。可以把不大于64M的数据作为单元格数据直接写进去。但是有一定的学习成本,而且对集群的硬件要求比较
㈤ C++里面存储数据跟读取数据
可以在文件当中设置一个标志符号,当去读到该标志符号时,停止读取数据,并关闭文件。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。2、例程:#includeint a;char b,c[100];int main(){ FILE * fp1 = fopen("input.txt", "r");//打开输入文件 FILE * fp2 = fopen("output.txt", "w");//打开输出文件 if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出 puts("不能打开文件!"); rturn 0; } fscanf(fp1,"%d",&a);//从输入文件读取一个整数 b=fgetc(fp1);//从输入文件读取一个字符 fgets(c,100,fp1);//从输入文件读取一行字符串 printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数 fputs(c,fp2);//向输出文件写入一行字符串 fputc(b,fp2);//向输出文件写入一个字符 fprintf(fp2,"%d",a);//向输出文件写入一个整数 fclose(fp1);//关闭输入文件 fclose(fp2);//关闭输出文件,相当于保存 return 0;}