从电话数据中获取字符串为bytearray,然后再次将其更改为字符串



我正在与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((,然后获得所需的字符串。

最新更新