我正在与Android中的数据持久性一起工作,并且我正在尝试执行一个简单的应用程序,其中我保存字符串(例如议程(,以便您甚至可以让它们再次关闭应用程序。
它已经在起作用,但是我的问题是当我尝试将数据恢复,将Bytearray更改为字符串时:
保存数据:
fun saveShopData(newItem:String,context: Context){
var file =
context.openFileOutput("shoppingList",Context.MODE_PRIVATE)
file.write(newItem.toByteArray(charset = Charsets.US_ASCII))
file.close()
}
编写并添加:
var file = openFileInput("shoppingList")
facade.addItem(file.read().toString())
file.close()
问题在于,当我使用ToString而不是使用的字符串时,我会得到一个INT,这可能是因为Butearray形式。我可以做些什么来获取实际的字符串?
事先感谢我的英语不好。
您所拥有的是InputStream,我认为您可以在此处按照以下示例来检索文本:(
https://www.baeldung.com/kotlin-inputstream-to-string
因此,将输入流转换为字符串的方法是:
var file = openFileInput("shoppingList")
var inReader = BufferedReader(file.reader())
facade.addItem(inReader.readText())
1.创建一个bufferedReader并传递从文件中读取的file.reader((。
2.使用BufferReader使用readText((,然后获得所需的字符串。