当前位置: 首页 > news >正文

桂林学校网站制作wordpress前端库加速

桂林学校网站制作,wordpress前端库加速,国外的电商网站有哪些方面,寺院网站建设目录 将数据存储到文件中 创建文件和保存数据 读取文件 SharedPreferences存储 存储数据到SharedPreferences中 Context类中的getSharedPreferences()方法 Activity类中的getPreferences()方法 从SharedPreferences中读取数据 SQLite数据库存储 创建数据库 调用数据…目录 将数据存储到文件中 创建文件和保存数据 读取文件 SharedPreferences存储 存储数据到SharedPreferences中 Context类中的getSharedPreferences()方法 Activity类中的getPreferences()方法 从SharedPreferences中读取数据 SQLite数据库存储 创建数据库 调用数据库 操作数据库 增 删 改 查 升级数据库 将数据存储到文件中 创建文件和保存数据 Context类中提供了一个openFileOutput()方法可以用于将数据存储到指定的文件中。这个方法接收两个参数第一个参数是文件名在文件创建的时候使用注意这里指定的文件名不可以包含路径因为所有的文件都默认存储到/data/data/package name/files/目录下第二个参数是文件的操作模式主要有MODE_PRIVATE和MODE_APPEND两种模式可选默认是MODE_PRIVATE表示当指定相同文件名的时候所写入的内容将会覆盖原文件中的内容而MODE_APPEND则表示如果该文件已存在就往文件里面追加内容不存在就创建新文件。其实文件的操作模式本来还有另外两种MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。这两种模式表示允许其他应用程序对我们程序中的文件进行读写操作不过由于这两种模式过于危险很容易引起应用的安全漏洞已在Android 4.2版本中被废弃。 openFileOutput()方法返回的是一个FileOutputStream对象得到这个对象之后就可以使用Java流的方式将数据写入文件中了。以下是一段简单的代码示例展示了如何将一段文本内容保存到文件中 fun saveFile(saveString: String) {val output openFileOutput(fileName, Context.MODE_PRIVATE)val writer BufferedWriter(OutputStreamWriter(output))writer.use {it.write(saveString)}} 这里通过openFileOutput()方法能够得到一个FileOutputStream对象然后借助它构建出一个OutputStreamWriter对象接着再使用OutputStreamWriter构建出一个BufferedWriter对象这样你就可以通过BufferedWriter将文本内容写入文件中了。 注意这里还使用了一个use函数这是Kotlin提供的一个内置扩展函数。它会保证在Lambda表达式中的代码全部执行完之后自动将外层的流关闭这样就不需要我们再编写一个finally语句手动去关闭流了是一个非常好用的扩展函数。 另外Kotlin是没有异常检查机制checked exception的。这意味着使用Kotlin编写的所有代码都不会强制要求你进行异常捕获或异常抛出。即使你不写try catch代码块在Kotlin中依然可以编译通过。 读取文件 类似于将数据存储到文件中Context类中还提供了一个openFileInput()方法用于从文件中读取数据。这个方法要比openFileOutput()简单一些它只接收一个参数即要读取的文件名然后系统会自动到/data/data/package name/files/目录下加载这个文件并返回一个FileInputStream对象得到这个对象之后再通过流的方式就可以将数据读取出来了。 以下是一段简单的代码示例展示了如何从文件中读取文本数据 fun loadFile(): String {val stringBuilder StringBuilder()val input openFileInput(fileName)val reader BufferedReader(InputStreamReader(input))reader.use {reader.forEachLine {stringBuilder.append(it)}}return stringBuilder.toString()} 在这段代码中首先通过openFileInput()方法获取了一个FileInputStream对象然后借助它又构建出了一个InputStreamReader对象接着再使用InputStreamReader构建出一个BufferedReader对象这样我们就可以通过BufferedReader将文件中的数据一行行读取出来并拼接到StringBuilder对象当中最后将读取的内容返回就可以了。 注意这里从文件中读取数据使用了一个forEachLine函数这也是Kotlin提供的一个内置扩展函数它会将读到的每行内容都回调到Lambda表达式中我们在Lambda表达式中完成拼接逻辑即可。 SharedPreferences存储 存储数据到SharedPreferences中 要想使用SharedPreferences存储数据首先需要获取SharedPreferences对象。Android中主要提供了以下两种方法用于得到SharedPreferences对象。 Context类中的getSharedPreferences()方法 此方法接收两个参数第一个参数用于指定SharedPreferences文件的名称如果指定的文件不存在则会创建一个SharedPreferences文件都是存放在/data/data/package name/shared_prefs/目录下的第二个参数用于指定操作模式目前只有默认的MODE_PRIVATE这一种模式可选它和直接传入0的效果是相同的表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。其他几种操作模式均已被废弃MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE这两种模式是在Android 4.2版本中被废弃的MODE_MULTI_PROCESS模式是在Android 6.0版本中被废弃的。 Activity类中的getPreferences()方法 这个方法和Context中的getSharedPreferences()方法很相似不过它只接收一个操作模式参数因为使用这个方法时会自动将当前Activity的类名作为SharedPreferences的文件名。 得到了SharedPreferences对象之后就可以开始向SharedPreferences文件中存储数据了主要可以分为3步实现。 (1) 调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象。 (2) 向SharedPreferences.Editor对象中添加数据比如添加一个布尔型数据就使用putBoolean()方法添加一个字符串则使用putString()方法以此类推。 (3) 调用apply()方法将添加的数据提交从而完成数据存储操作。 代码示例如下 fun saveSharedPreferences(saveString: String){val edit getSharedPreferences(fileName,Context.MODE_PRIVATE).edit()edit.putString(editName,editValue)edit.apply()} 从SharedPreferences中读取数据 SharedPreferences对象中提供了一系列的get方法用于读取存储的数据每种get方法都对应了SharedPreferences.Editor中的一种put方法比如读取一个布尔型数据就使用getBoolean()方法读取一个字符串就使用getString()方法。这些get方法都接收两个参数第一个参数是键传入存储数据时使用的键就可以得到相应的值了第二个参数是默认值即表示当传入的键找不到对应的值时会以什么样的默认值进行返回。 代码示例如下 fun loadSharedPreferences(): String {val sharedPreferences getSharedPreferences(fileName, Context.MODE_PRIVATE)return sharedPreferences.getString(editName, defValue)!!} SQLite数据库存储 创建数据库 Android为了让我们能够更加方便地管理数据库专门提供了一个SQLiteOpenHelper帮助类借助这个类可以非常简单地对数据库进行创建和升级。既然有好东西可以直接使用那我们自然要尝试一下了下面我就对SQLiteOpenHelper的基本用法进行介绍。 首先你要知道SQLiteOpenHelper是一个抽象类这意味着如果我们想要使用它就需要创建一个自己的帮助类去继承它。SQLiteOpenHelper中有两个抽象方法onCreate()和onUpgrade()。我们必须在自己的帮助类里重写这两个方法然后分别在这两个方法中实现创建和升级数据库的逻辑。 SQLiteOpenHelper中还有两个非常重要的实例方法getReadableDatabase()和getWritableDatabase()。这两个方法都可以创建或打开一个现有的数据库如果数据库已存在则直接打开否则要创建一个新的数据库并返回一个可对数据库进行读写操作的对象。不同的是当数据库不可写入的时候如磁盘空间已满getReadableDatabase()方法返回的对象将以只读的方式打开数据库而getWritableDatabase()方法则将出现异常。 SQLiteOpenHelper中有两个构造方法可供重写一般使用参数少一点的那个构造方法即可。这个构造方法中接收4个参数第一个参数是Context这个没什么好说的必须有它才能对数据库进行操作第二个参数是数据库名创建数据库时使用的就是这里指定的名称第三个参数允许我们在查询数据的时候返回一个自定义的Cursor一般传入null即可第四个参数表示当前数据库的版本号可用于对数据库进行升级操作。构建出SQLiteOpenHelper的实例之后再调用它的getReadableDatabase()或getWritableDatabase()方法就能够创建数据库了数据库文件会存放在/data/data/package name/databases/目录下。此时重写的onCreate()方法也会得到执行所以通常会在这里处理一些创建表的逻辑。 我们建立一个代码示例如下 class MyDatabaseHelper(private val context: Context,private val databaseName: String,val version: Int ) : SQLiteOpenHelper(context, databaseName, null, version) {private val createTable create table tableName(id integer primary key autoincrement, key1 text, key2 real, key3 integer)override fun onCreate(db: SQLiteDatabase?) {db?.execSQL(createTable)}override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {} } 调用数据库 val myDatabaseHelper MyDatabaseHelper(this,databaseName,1) myDatabaseHelper.writableDatabase 操作数据库 增 val myDatabaseHelper MyDatabaseHelper(this, databaseName, 1) val db myDatabaseHelper.writableDatabase val value1 ContentValues().apply {put(key1, 111)put(key2, 1.1)put(key3, 1) } db.insert(tableName, null, value1)val value2 ContentValues().apply {put(key1, 222)put(key2, 2.2)put(key3, 2) } db.insert(tableName, null, value2) 删 db.delete(tableName, key2 ? and key3 ? , arrayOf(2.2,2)) 改 val value3 ContentValues().apply {put(key1, 444)} db.update(tableName, value3, key2 ?, arrayOf(1.1)) 查 val course db.query(tableName, null, null, null, null, null, null)if (course.moveToFirst()) {do {println(course.getString(course3.getColumnIndex(key1)))println(course.getString(course.getColumnIndex(key2)))println(course.getString(course.getColumnIndex(key3)))} while (course.moveToNext())}course.close() 升级数据库 在MyDatabaseHelper类中我们还有一个onUpgrade的方法没有使用这个方法就是用来升级数据库的当我们需要升级数据库时改写MyDatabaseHelper的version让它大于我们直接传入的数这样就会自动调用onUpgrade示例代码如下 val myDatabaseHelper MyDatabaseHelper(this, databaseName, 2) 然后我们在onUpgrade方法中编写升级逻辑代码如下 class MyDatabaseHelper(private val context: Context,private val databaseName: String,val version: Int ) : SQLiteOpenHelper(context, databaseName, null, version) {private val createTable create table tableName(id integer primary key autoincrement, key1 text, key2 real, key3 integer)private val createTable2 create table tableName2(id integer primary key autoincrement, key1 text, key2 real, key3 integer)override fun onCreate(db: SQLiteDatabase?) {db?.execSQL(createTable)db?.execSQL(createTable2)}override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {if (oldVersion1){db?.execSQL(createTable2)}} } 当原来的版本是1时我们就创建表2不然就执行onCreate方法创建表1表2。如果后续我们需要再表1中增加一个字段  tableName_id那么我们将传入的version改成3再在onUpgrade方法中编写如下代码 override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {if (oldVersion1){db?.execSQL(createTable2)}if (oldVersion2){db?.execSQL(alter table tableName add column tableName_id integer)}} 这样我们就能在表1中新增一个tableName_id字段了
http://www.hkea.cn/news/14301634/

相关文章:

  • 天津网络网站公司苏州整站优化
  • 汽车网站网站建设公司哪家
  • 网站开发需要看什么书上海猎头公司电话
  • 创造有价值的网站福州网站建设好的公司
  • 专业做企业活动的趴网站wordpress 判断加密
  • 如何选择做pc端网站移动宽带过期了怎么续费
  • 免费兼职一单一结合肥百度seo代理
  • 网站优化要多少钱做个app好还是做网站好
  • 信息公开网站建设大连门户网站开发
  • 网站建设 部署与发布 答案wordpress文章显示摘要
  • 网站建设风格有哪些wordpress图片小程序
  • 怎么建立网站 个人进一步优化落实
  • 兼职做网站平台天津公司网站的建设
  • 网站psd设计稿seo做的好的网站有哪些
  • 搭建三合一网站网页设计的交流网站
  • 网站引导页怎么设置免费域名注册查询入口
  • 铁道部建设监理协会网站网站开发移动app
  • python工程打包供网站开发调用衡水冀县做网站
  • 网站建设与管理认识wordpress静态文件目录下
  • 做标记网站网站及管理系统
  • 即时设计网站网站开发美工绩效考核
  • 软件网站建设公司做甜品网站栏目
  • 怎么做外贸企业网站fotor懒设计
  • 建设企业网站体会vi视觉识别设计公司
  • 专门做红酒的网站深圳手机商城网站设计费用
  • 旅游电子商务网站建设规划书免费网站服务器安全
  • 做产品推广得网站注册qq空间申请
  • 中国建设很行河北省分行合作网站百度收录怎么弄
  • 如何在百度网站收录提交入口办公空间设计说明200字
  • 高端的网站建设公司中策大数据工程信息网