将自定义 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()
希望对您有所帮助。
我找不到制作收藏夹列表的好方法。我有一个带有按钮的回收器视图,用于将项目存储到 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()
希望对您有所帮助。