【问题标题】:Read a Text asset(text file from assets folder) as a String in Kotlin (Android)在 Kotlin (Android) 中将文本资产(资产文件夹中的文本文件)作为字符串读取
【发布时间】:2018-04-22 10:42:16
【问题描述】:

我需要读取存储在src/main/assets/ 的文本文件,即;在资产文件夹中并将其作为字符串获取。

有没有简单的方法。

Java 的复制、粘贴、转换功能都比较麻烦,所以我宁愿使用 kotlin 的方式。

我需要一个 kotlin 方法来做到这一点

【问题讨论】:

    标签: android string file kotlin android-assets


    【解决方案1】:

    我在 youtube 视频中发现了这个。这是链接https://www.youtube.com/watch?v=o5pDghyRHmI

    val file_name = "qjsonfile.json"
    val json_string = application.assets.open(file_name).bufferedReader().use{
                it.readText()
            }
    

    将 JSON 或文本保存到字符串 json_string

    【讨论】:

    • 请告诉我们如何写它
    • 我试过了,它说“未解决的参考:应用程序”不确定我应该从哪里获得“应用程序”。
    • @DINATAKLIT 您无法写入位于资产文件夹中的文件。它们是只读的
    • OP,您应该更新该应用程序实际上是上下文对象。谢谢,效果很好。
    【解决方案2】:

    如有疑问,请自行关闭流!

    application.assets.open(file_name).apply {
                    json_string = this.readBytes().toString(Charsets.UTF_8)
                }.close()
    

    【讨论】:

    • 如果添加. bufferedReader().use{...},则无需.close()
    【解决方案3】:

    您不需要Application 来读取assets 文件夹中的文本文件。

    fun readAsset(context: Context, fileName: String): String =
        context
            .assets
            .open(fileName)
            .bufferedReader()
            .use(BufferedReader::readText)
    

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2012-12-26
      • 2011-01-22
      • 2012-05-11
      • 2018-01-19
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2017-12-02
      相关资源
      最近更新 更多