安卓数据库编程总结(1)
来源:互联网 发布:sql注入病毒的原理 编辑:程序博客网 时间:2024/04/29 04:19
最近学习了安卓数据库编程,一直没时间好好总结一下,因此今天抽空总结一下,算是给自己的知识升华一下。
首先,安卓数据存储分为五大类:
**1. Shared Preferences
- 外部存储(SD卡)
- 内部存储(手机内存)
- 网络存储
- SQLite Databases**
本篇博客先介绍手机内部和外部存储: 内部存储和外部也可以理解为File存储,谷歌为我们提供了两钟文件夹来存放File信息:
- files文件夹:存放重要文件,只有应用被卸载或者删除数据才会丢失
- cache文件夹:存放临时文件信息,应用删除缓存就删除文件数据
这两种文件夹都位于数据文件夹下
getFilesDir()//返回使用openFileOutput创建的文件的绝对路径File file=getFilesDir();file.getPath();//返回/data/data/com.example.filestorage/filesFile file=getCacheDir()file.getPath();//返回data/data/com.example.filestorage/cache
## 内部存储 ##
在安卓中,Context给我们提供了两个方法来打开本应用程序文件夹下的文件的IO流。
File存储的文件位于应用文件夹/data/data/files
1 public abstract FileInputStream openFileInput(String name)//取得文件输入流name:需要打开的文件,不能含有分隔符2 public abstract FileOutputStream openFileOutput(String name, int mode)//取得文件输出流name:需要打开的文件,不能含有分隔符mode:打开文件的模式,安卓里面有四中文件创建模式: MODE_APPEND//追加模式,可以向文件追加内容 MODE_PRIVATE//默认模式,私有模式,该文件只能被当前应用读写,并且输入新内容后就得内容会被删除 MODE_WORLD_READABLE//只读模式,该应用程序可以被其他应用程序读取 MODE_WORLD_WRITEABLE//可写模式,该应用程序可以被其他应用程序读写 **注意:只有MODE_APPEND模式才可以追加内容,其它模式在写入新内容时,就得内容就被删除。**
**MODE_WORLD_READABLE和 MODE_WORLD_WRITEABLE已经被不建议使用,如果需要和其他的应用程序分享数据,建议使用Contenprovider或者Broadcastreceiver。
外部存储
进行外部存储读取数据的步骤:
1 配置权限 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>2 判断SD卡状态,即是否插入SD卡 Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 如果返回true,则SD卡可用,false不可用3 取得SD卡目录 Environment.getExternalStorageDirectory()4 使用输出输入流读取SD卡文件数据**内部存储示例代码*```public class MainActivity extends ActionBarActivity { private EditText et_write,et_query; private static final String FILE_NAME="file1.txt"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView(){ et_write=(EditText)findViewById(R.id.et_write); et_query=(EditText)findViewById(R.id.et_query); }public void click1(View view) throws Exception{ FileOutputStream fos=openFileOutput(FILE_NAME, MODE_APPEND); String datas=et_write.getText().toString().trim(); fos.write(datas.getBytes()); Toast.makeText(MainActivity.this, "添加成功", 0).show(); fos.close();} public void click2(View view) throws Exception{ FileInputStream fis= openFileInput(FILE_NAME); byte[] buff=new byte[1024]; //由于会修改和删除文件信息,所以为了减少内存开销,不建议使用不可改变字符串的String StringBuilder sb=new StringBuilder(); int len=0; while((len=fis.read(buff))!=-1){ sb.append(new String(buff)); } et_query.setText(sb.toString()); Toast.makeText(MainActivity.this, "读取成功", 0).show(); }片
`
0 0
- 安卓数据库编程总结(1)
- 安卓数据库编程之Sqlite
- 安卓Socket网络编程技巧总结
- ADO数据库编程-总结1
- 安卓编程问题1
- 安卓航班Android开发经典教程大总结1----基础编程及源码推送
- 安卓航班Android开发经典教程大总结1----基础编程及源码推送
- 安卓高级编程总结:bitmap内存优化
- 关于安卓开发网络编程踩坑的总结
- C#数据库编程总结
- 数据库编程总结
- 数据库编程总结
- 【转】数据库编程总结
- 数据库编程总结
- 数据库编程总结
- 数据库编程总结
- 数据库编程总结
- 数据库编程总结
- leetcode 257. Binary Tree Paths
- Hadoop2的高可用性实现原理
- 虚继承
- PHP 运行方式(PHP SAPI介绍)
- 屏蔽Adobe连接验证服务器
- 安卓数据库编程总结(1)
- Host 'heChengjian' is not allowed to connect to this MySQL server
- webservice 入门笔记三通过payload发送消息
- 自定义一个图片在上,文字在下的按钮
- 《机器学习实战》小结
- 数据结构 - 2顺序表及链表基本运算实现
- Source Insight阅读Matlab源码设置流程(其他语言也通用)
- 吴恩达机器学习笔记_第二周
- getaddrinfo函数