【发布时间】:2020-02-23 21:18:42
【问题描述】:
我有一个问题。我有一个应用程序并将所有数据存储在“模型”类中,我想通过序列化来保存它。这是模型:
import android.os.Parcel
import android.os.Parcelable
import java.io.Serializable
private lateinit var att : IntArray
private lateinit var ess :String
private lateinit var skills : MutableList<IntArray>
private lateinit var attSkill : MutableList<IntArray>
class Model : Serializable {
init {
att = IntArray(9) { 1 }
ess = "6"
}
fun getAttributes() : IntArray{
return att
}
fun setAttributes(position : Int, value : Int){
att[position] = value
}
}
我保存它:
val fos = context.openFileOutput(filename, Context.MODE_PRIVATE)
val os = ObjectOutputStream(fos)
this.saveStuff() //[Just write Attributes to model here]
var newModel = controller.getModel()
os.writeObject(newModel)
并加载它:
val fis = context.openFileInput(filename)
val input = ObjectInputStream(fis)
val model = input.readObject() as Model
this.loadStuff(model)
input.close()
现在我明白了:假设我使用文件名“test1”保存值 1 2 3 4,然后将值 4 3 2 1 保存在“test2”中。之后我加载“test1”并得到 4 3 2 1。事实上,我只是在加载数据的那一刻得到了我的应用程序正确的值。使用 Log.d() 在加载函数中检查它。 重新启动应用程序后,如果我加载“test1”或“test2”,我将获得默认值。
我错过了什么吗?或者这只是人们实际将 Json 用于此类事情的一个例子。
【问题讨论】:
标签: android kotlin serialization