将自定义 Kotlin 数据类存储到磁盘

Kyl*_*le 0 android persistence kotlin data-class

我无法找到制作收藏夹列表的好方法。我有一个回收器视图,带有一个用于将项目存储到的按钮Favorites,我可以轻松地存储这些项目id,但随后我必须重新进行网络调用才能获取一些基本信息来填充列表项视图。

这是我的回收器视图的屏幕截图..

回收视图

这些项目是一个简单的数据类,定义如下

data class CoinListItem(
    @Expose
    @SerializedName("id")
    var id: String? = null,
    @Expose
    @SerializedName("name")
    var name: String? = null,
    @Expose
    @SerializedName("symbol")
    val symbol: String? = null,
    @Expose
    @SerializedName("website_slug")
    val slug: String? = null,
    @Expose
    @SerializedName("quote")
    val quoteItem: CoinListQuoteItem? = null,
    @Expose
    @SerializedName("tags")
    val tags: List<String>? = null): Parcelable
Run Code Online (Sandbox Code Playgroud)

有没有办法将自定义对象保存到磁盘?

Pav*_*sha 7

是的。您可以将类描述为可序列化CoinListItem(...): Serializable,从而告诉系统它可以序列化为文本或从文本反序列化。接下来 - 您File通过以下方式创建序列化对象

    val item = CoinListItem()
    val file = FileOutputStream("file.txt") // here should be a full path and name
    val outStream = ObjectOutputStream(file)

    // Method for serialization of object
    outStream.writeObject(item)

    outStream.close()
    file.close()

Run Code Online (Sandbox Code Playgroud)

要反序列化它,请使用


    val file = FileInputStream("file.txt")
    val inStream = ObjectInputStream(file)

    // Method for deserialization of object
    val item = inStream.readObject() as CoinListItem

    inStream.close()
    file.close()

Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。