java - 如何在 Android Studio 中使用 Kotlin 编写/编辑 txt 文件?

标签 java android android-studio kotlin

我正处于Android应用程序学习阶段的开始。我的 Assets 文件夹中有一个 .txt 文件,每行包含字符串,如下所示-

AWOL    JJ  AWOL
Aaronic JJ  Aaronic
Aaronical   JJ  Aaronical

我想做的就是替换 JJNN并保持同样的休息。我的问题是-

  1. 有没有办法编辑已经存在的文件,因为我找到的所有解决方案都在讨论使用函数 File(<filename>) 创建其他文件?
  2. 如果我按照不同网站上描述的解决方案进行操作,我将无法使用 File() 访问该文件,它显示 file can not be found 的错误即使我创建了一个同名的空文件。如果该文件位于 assets 内,我将无法访问该文件文件夹或内部app/src 。所以,我使用 Context.assets.open(<filename>)用于读入原始文件,该文件将文件打开为 inputstream 。虽然我不知道使用 File() 打开文件的任何其他方式用于写作。
// FOR READING FROM ORIGINAL FILE
var inputStreamLemmDict = BufferedReader(InputStreamReader(context!!.assets.open("my_file.dict"))).readLines()

// FOR WRITING TO ANOTHER FILE
File("path_to/my_file.txt").bufferedWriter().use { out ->
        inputStreamLemmDict.forEach {
            var eachLineSplit = it.split("\\s".toRegex())
            if (eachLineSplit[1] == "NNN") {
                out.write("${eachLineSplit[0]}\tNN\t${eachLineSplit[2]}\n")
            }
            else {
            out.write("${it}\n")
            }
        }

感谢任何帮助。谢谢!

最佳答案

您好,您可以使用以下解决方案来达到您想要的结果。

更新:请尝试此解决方案从 Assets 中读取文件并获取结果。该解决方案未经测试。

确保 yourfilename.txt 位于 asset 文件夹下。

try {
val inputStream:InputStream = assets.open("yourfilename.txt")
      val text = inputStream.bufferedReader().use{it.readText()}

        println(text)
        text = text.replace("JJ".toRegex(), "NN")
        f.writeText(text)
}catch (e:Exception){
        Log.d(TAG, e.toString())
    }

关于java - 如何在 Android Studio 中使用 Kotlin 编写/编辑 txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59066626/

相关文章:

android - 如何在 android studio 设计预览中隐藏黑色菜单栏?

java - 如何使用 Stream 从 java Map 创建多个列表?

JavaFX、场景生成器 (IntelliJ) 程序从 StackOverFlow 抛出 java.lang.reflect.InitationTargetException

java - Android Java 倒计时然后做某事

android - E/ViewRootImpl : sendUserActionEvent() returned

jquery - android 滚动问题锁定浏览器

Android Studio 缺少设计

安卓工作室 : Could not find any version that matches com. google.gms :play-services:6. 1.+

java - 环回地址未接收数据报包

java - 更改 Tapestry 4 中的区域设置