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

Store Custom Kotlin Data Class to disk

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

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

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

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

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

是的。您可以将 class 描述为 Serializable 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()

反序列化使用


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

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

    inStream.close()
    file.close()

希望对您有所帮助。