Java 如何在Android Studio中使用Kotlin编写/编辑txt文件?
我正处于Android应用程序学习阶段的开始。我的资产文件夹中有一个.txt文件,每行由字符串组成,如下所示-Java 如何在Android Studio中使用Kotlin编写/编辑txt文件?,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,我正处于Android应用程序学习阶段的开始。我的资产文件夹中有一个.txt文件,每行由字符串组成,如下所示- AWOL JJ AWOL Aaronic JJ Aaronic Aaronical JJ Aaronical 我想做的就是用NN替换JJ,并保持其余部分不变。我的问题是- 有没有办法编辑已经存在的文件,因为我找到的所有解决方案都是使用函数file()创建其他文件 如果我遵循不同网站上描述的解决方案,我无法使用file()访问文件,这表明即使我创建了同名的空文件,也无法
AWOL JJ AWOL
Aaronic JJ Aaronic
Aaronical JJ Aaronical
我想做的就是用NN
替换JJ
,并保持其余部分不变。我的问题是-
file()
创建其他文件file()
访问文件,这表明即使我创建了同名的空文件,也无法找到文件。如果文件位于assets
文件夹内或app/src
内,则无法访问该文件。因此,我使用Context.assets.open()
读取原始文件,该文件以inputstream
的形式打开。虽然我不知道使用file()
进行写入来打开文件的其他方法
感谢您的帮助。谢谢大家! 您好,您可以使用以下解决方案来实现所需的结果 更新:请尝试此解决方案从资产读取文件并获得结果。此解决方案未经测试 确保yourfilename.txt位于资产文件夹下
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){
变量行号=0
var newString=“”
文件(“src/dataFile”).forEachLine{
++行号
println(“$lineNumber:$it”)
newString=it.replace(“JJ”、“NN”)
println(“新字符串:$newString”)
}
文件(“src/dataFile”).writeText(新闻字符串)
}
您无法编辑APK内容表单本身。因此,如果文件在资源中-您无法编辑它。好的,那么我应该将文件放在哪里进行编辑?。我读过关于把它们放在app/src的文章,这取决于你把它们放在哪里。关于外部或内部存储。好的,那么您将如何处理这个书写问题呢?。你会把文件放在哪里?如果你只想用NN
替换JJ
,那么使用String要容易得多。替换(“JJ”,“NN”)
(我知道是java,不是kotlin,但转换应该不会有问题)Hi Sumit,谢谢你的回答。这听起来很合理,但问题是文件(File)
,我无法通过在此处提供文件的路径来访问文件,这是文件
函数所必需的。所以,我的问题是,我应该把这个文件
放在android studio的哪个文件夹中,这样我就可以通过在f.writeText
中给出路径来访问它了。很抱歉,这是旧的解决方案。请检查@markB的新解决方案是否有效。
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)
}