在android设备中什么是internal和external存储区? 默认情况下,app是安装在哪种存储区中?如何改变到其他存储区? internal存储区的目录结构通常是怎样的? 在internal存储区存放文件的时候,通过哪些方法获取内部存储的目录对象?对文件操作及流操作模糊的同学请回到java复习相关知识 向internal存储区写文件的代码模板是怎么样的?请理解。 从internal存储区读文件的代码模板是怎样的?请理解。 对external存储区进行读写的时候,应该在manifest文件中怎么设置? 在对external存储区进行操作之前应该怎么做?为什么这么做? 在external存储区中能存放的文件分为哪两类?针对这两类文件,在获取存放目录对象的时候,采用什么方法调用?如果刚开始的时候,没有预定义的子目录用于存放你的文件,该怎么做? 当用户在卸载app的时候,哪些内容是系统自动删除的,哪些是程序员需要关照删除的? 什么是SharedPreferences? 如何来创建或者访问一个sharedPreferences? 如何将键值对写入SharedPreferences文件中?注意不是使用SharedPreferences对象直接写入,而是使用SharedPreferences.Editor来写入数据 如何从SharedPreferences文件中读取数据? 什么是序列化?xml序列化的操作步骤 什么是bean?bean中的成员变量一般为private的?那这种成员变量的值怎么进行设置与获取? 有几种xml解析方式?PULL解析过程 如何在命令行中进入sqlite的工作界面 如何让windows的控制台中正常显示sqlite中存放的汉字? 熟悉sqlite中的常用命令? 定义contract类有什么用? 定义helper类有什么用?熟悉该类中的常用方法 execSQL、rawQuery、query这三个方法在用于查询时什么区别?为防止sql注入,我们最好选用哪个方法来作查询? ContentValues是个什么类?怎么用? Cursor是什么类?怎么用? 什么是事务?它的标准处理模式是怎样的? Android中如何开启事务如何关闭事务 简要描述SQLiteOpenHelper的主要作用 简要描述一下SQLite数据库 简要写出Android中创建数据库的步骤. End.保存数据到文件
外部存储可存储两种类型的文件,public 和 private,后者随 app 删除而删除
其中 private 文件属于 app,虽在技术上可以被用户与其它 app 访问,但对于他们而言没有意义
android:installLocation
属性更改
data/data/app_name/
getFilesDir() 返回一个代表 internal 目录的 File 对象 getDir(name,mode) 在 internal 目录中创建或者打开一个目录 getCacheDir() 返回一个用于存放你的 app 临时 缓存文件的 internal 目录 File file = new File(getApplicationContext().getFilesDir(), filename);
public void save(View view) { EditText et_input = (EditText) findViewById(R.id.et_input); String content = et_input.getText().toString(); String filename = "data.txt"; FileOutputStream fos; try { fos = openFileOutput(filename, Context.MODE_PRIVATE); fos.write(content.getBytes()); fos.close(); Toast.makeText(this, getString(R.string.success), Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } }
byte[] buffer = new byte[fis.available()]; //测试 byte 数组的大小 fis.read(buffer); content = new String(buffer); 还有 //按字符读 int ch; ch = fis.read(); while(ch != -1) { fileContent += (char)ch; ch = fis.read(); }
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
后者采用 getExternalFilesDir 方法创建目录没懂
使用共享首选项 (Shared Preferences)
SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
int defaultValue = getResources().getInteger(R.string.saved_high_score_default); int highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
序列化
2.打开文件输出流
3.创建相应的序列化器File file = new File(Environment.getExternalStorageDirectory(),"Person.xml"); FileOutputStream fos = new FileOutputStream(file); XmlSerializer serializer = Xml.newSerializer();
class
被称为 JavaBean// 读方法: public Type getXyz() // 写方法: public void setXyz(Type value)
2.设置解析器的 xml 来源
3.获取当前事件类型,解析器状态
4.循环处理 xmlSQLite数据库
chcp 65001
.open 数据库名称: 打开数据库,如果该数据库在磁盘中不存在,则创建并打开 .save 数据库名称: 如果 sqlite3 的启动是通过双击 windows 中的 sqlite3.exe 的图标打开的,系统会在内存中创建一个数据库,这个数据库如果需要存放到磁盘,则需要使用本命令进行存放。如果磁盘上如有同名的数据库,会覆盖 .databases: 用于列出数据库 .tables: 用于列出数据库中的数据表
比较耗时,需放在后台线程中调用
rawQuery方法与之类似,区别是返回一个 Cursor 对象
query 方法是 SQLiteDatabase 类中专门用来查询操作的方法
ContentValues 对象,底层为 map 键值对,key 列名,value 列值public long insert (String table, String nullColumnHack, ContentValues values)
Cursor c = db.query(FeedEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);
//cursor 起始位置在 -1 处 cursor.moveToFirst(); //将读取点放在入口位置,read position long itemId = cursor.getLong(cursor.getColumnIndexOrThrow(FeedEntry._ID));
List itemIds = new ArrayList<>(); while(cursor.moveToNext()) { long itemId = cursor.getLong(cursor.getColumnIndexOrThrow(FeedEntry._ID)); itemIds.add(itemId); } cursor.close();
db.beginTransaction(); try { ... db.setTransactionSuccessful(); } finally { db.endTransaction(); }
beginTransactionNonExclusive 以IMMEDIATE模式 可读不可写
方法参数 (SQLiteTransactionListener transactionListener),该方法中有事务监听器
设计目标是嵌入式,占用资源非常低,支持主流操作系统,能跟多种编程语言结合
处理速度快于MySQL、PostgreSQL
然后实例化该子类,调用 getWriteableDatabase 或 getReadableDatabase 方法创建数据库FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext()); SQLiteDatabase db = mDbHelper.getWritableDatabase(); 然后用 ContentValues 插入数据 ContentValues values = new ContentValues(); values.put(FeedEntry.COLUMN_NAME_ENTRY_ID, id); 这个方法 public long insert (String table, String nullColumnHack, ContentValues values)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算