簡體   English   中英

如何在 Android Studio 中使用 Kotlin 編寫/編輯 txt 文件?

[英]How to Write/ Edit a txt file using Kotlin in Android Studio?

我正處於Android App學習階段的開始。 我的資產文件夾中有一個 .txt 文件,每行包含一個字符串,就像這樣-

AWOL    JJ  AWOL
Aaronic JJ  Aaronic
Aaronical   JJ  Aaronical

我想要做的只是用NN替換JJ並保持不變。 我的問題是——

  1. 有沒有辦法編輯已經存在的文件,因為我找到的所有解決方案都在談論使用函數File(<filename>)創建其他文件?
  2. 如果我按照不同網站上描述的解決方案,我無法訪問文件 USING File() ,即使我創建了一個同名的空文件,它file can not be foundfile 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")
            }
        }

任何幫助表示贊賞。 謝謝!

您好,您可以使用以下解決方案來實現您想要的結果。

更新:請嘗試使用此解決方案從資產中讀取文件並獲得結果。 此解決方案未經測試。

確保 yourfilename.txt 在 assets 文件夾下。

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())
    }
fun main(args: Array<String>) {
var lineNumber = 0
var newString = ""
File("src/dataFile").forEachLine {
    ++lineNumber
    println("$lineNumber: $it")
    newString = it.replace("JJ", "NN")
    println("New string : $newString")
}
File("src/dataFile").writeText(newString) 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM