Получаем строку как ByteArray из данных телефона и снова меняем ее на String - PullRequest
0 голосов
/ 21 июня 2019

Я работаю с сохранением данных в 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()

Проблема в том, что я получаю Int, когда использую toString, а не строки, которые я использовал, возможно, из-за формы BiteArray. Есть что-нибудь, что я могу сделать, чтобы получить настоящую строку?

Заранее спасибо и извините за мой плохой английский.

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Итак, способ перевода InputStream в String:

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

1.Создайте BufferedReader и передайте file.reader (), который читает из вашего файла.

2. Используйте BufferReader для использования readText (), и вы получите желаемую строку.

0 голосов
/ 22 июня 2019

У вас есть InputStream, я думаю, вы можете получить текст, следуя приведенным ниже примерам:)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...