[英]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
並保持不變。 我的問題是——
File(<filename>)
創建其他文件?File()
,即使我創建了一個同名的空文件,它file can not be found
該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")
}
}
任何幫助表示贊賞。 謝謝!
您好,您可以使用以下解決方案來實現您想要的結果。
更新:請嘗試使用此解決方案從資產中讀取文件並獲得結果。 此解決方案未經測試。
確保 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.