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

时间:2019-06-21 20:45:24

标签: android kotlin

我正在使用android中的数据持久性,我正在尝试做一个简单的应用程序,用于保存字符串(如议程),以便即使关闭应用程序也可以再次获取它们。

它已经在工作,但是我遇到的问题是当我尝试取回数据时,将ByteArray更改为String:

保存数据:

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,可能是因为BiteArray形式。我可以做些什么来获取实际的String?

在此先感谢您的英语不好。

2 个答案:

答案 0 :(得分:0)

您拥有的是InputStream,我想您可以按照此处的示例检索文本:)

https://www.baeldung.com/kotlin-inputstream-to-string

答案 1 :(得分:0)

因此,将InputStream转换为String的方法是:

var file = openFileInput("shoppingList")
var inReader = BufferedReader(file.reader())
facade.addItem(inReader.readText())

1。创建一个BufferedReader并传递一个从文件中读取的file.reader()。

2。使用BufferReader来使用readText(),您将获得所需的String。