我正处于Android应用程序学习阶段的开始。我的 Assets 文件夹中有一个 .txt 文件,每行包含字符串,如下所示-
AWOL JJ AWOL
Aaronic JJ Aaronic
Aaronical JJ Aaronical
我想做的就是替换 JJ
与 NN
并保持同样的休息。我的问题是-
- 有没有办法编辑已经存在的文件,因为我找到的所有解决方案都在讨论使用函数
File(<filename>)
创建其他文件? - 如果我按照不同网站上描述的解决方案进行操作,我将无法使用
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/