数据存储到文件
个人《第一行代码》学习笔记(个人用)
val output=openFileOutput(“data”,Context.MODE_PRIVATE)
目录 文本操作模式,追加/覆盖
val writer =BufferedWriter(OutputStreamWriter(output))
writer.use{ it.write(inputText)
}
three points:
openFileOutput()–>
FileOutputStream–>
OutputStreamWriter–>
BufferedWriter–>
use//结束后自动关闭流
读取文件信息
val content=StringBuilder()
val input=openFileInput(“data”)
目录 文本操作模式,追加/覆盖
val reader =BufferedWriter(OutputStreamWriter(input))
reader.use{ reader.forEachLine{content.append(it)}}
return content.toString()
openFileInput–>
FileInputStream–>
InputStreamReader–>
BufferedReader–>
StringBuilder
理解: 打开文件–数据传入流–读取流–缓存读取–数据放入content
SharedPreferences:
简单 点击保存用法
…
savebutton.setOnClickListener{
val editor = getSharedPreferences(“data”,Context.MODE_PRIVATE).edit() 指定文件名data,与对象editor,向data写入数据(jian–zhi)
editor.putInt(“age”,19) 向对象添加数据
editor.apply() 提交
}
读取数据
readbutton.setOnClickListener{
val prefs=getSharedPreferences(“data”,Context.MODE_PRIVATE) 创对象
val age=prefs.getInt(“age”,0) 使用方法读取指定信息
Log.d(“AGE”,“age is $age”)在日志中通过通过关键字查找
}
上面存入的信息 都是写在代码里面的, 下面简单介绍下
存入 用户输入的信息 ,
val account =prefs.getString(“account”,"")
accountEdit.setText(account)
login.setOnClickListener{
val account = accountEdit.text.toString()
val editor = prefs.edit()
editor.pusString(“account”,account)
}
SQLite
知识点:抽象类 SQLiteOpenHelper 其内2个抽象方法 onCreate(),onUpgrade,实例方法: getReadableDatabase() getWritableDatabase() 创建和打开现有数据
//建立dbhelper 继承自抽象类 重写oncreate onupgrade
class MyDatabaseHelper(val context:Context, name:String,version:Int) : SQLiteOpenHelper(context, name , null, version){
private val createBook=“create table Book (” +
“id integer primary key autoincrement,” +
“author text,” +
“price real,”+
“pages integer,”+
“name text”
override fun onCreate(db:SQLiteDatabase){
db.execSQL(createBook)
Toast.makeText(context,“Create succeeded”,Toast.LENGTH_SHORT).show()
}
override fun onUpgrade(db:SQLiteDatabase, oldVersion:Inte, newVersion:Inte){}
}
class MainActivity:AppCompatAcitivity(){
override fun onCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val dbHelper=MyDatabaseHelper(this,“BookStore.db”,1)
createDataBase.setOnClickListener{
dbHelper.writableDatabase
} 主活动,设置布局,建立对象 绑定按钮id,给id 加监听器,设监听内容
}
}