当前位置:  开发笔记 > 编程语言 > 正文

读取行并在最后添加一些内容

如何解决《读取行并在最后添加一些内容》经验,为你挑选了1个好方法。

我是kotlin的新人.我正在尝试逐行读取文件,并在每个文件末尾添加一些内容.

我的文件在阅读之前:

abcd;abcd;abcd;
bcda;bcda;bcda;
dacb;dacb;dacb;

阅读和追加后的文件:

abcd;abcd;abcd;smth1
bcda;bcda;bcda;smth2
dacb;dacb;dacb;smth3

我有逐行读取文件的代码,但是你能告诉我如何为每个文件添加字符串吗?

val pathToFile = "abc.txt"
val scan = Scanner(File(pathToFile))
while (scan.hasNextLine()) {
    val line = scan.nextLine()
    var lista = ArrayList()
    lista = line.split(";") as ArrayList
    println(lista.get(0) + " and " + lista.get(1) + " and " + lista.get(2))
}

mfulton26.. 5

Januson有正确的想法.这是一些Kotlin代码来完成这项工作:

inline fun File.mapLines(crossinline transform: (line: String) -> String) {
    val tempFile = createTempFile(prefix = "transform", suffix = ".txt")
    tempFile.printWriter().use { writer ->
        this.forEachLine { line -> writer.println(transform(line)) }
    }
    check(this.delete() && tempFile.renameTo(this)) { "failed to replace file" }
}

用法示例:

val pathToFile = "abc.txt"
var index = 0
File(pathToFile).mapLines { line -> "${line}smth${++index}" }

如果您使用的是Java 1.7+,那么您可以使用Files.move而不是delete/ renameTo:

Files.move(tempFile.toPath(), this.toPath(), StandardCopyOption.REPLACE_EXISTING)

另请参阅Kotlin中匹配后写入文件.



1> mfulton26..:

Januson有正确的想法.这是一些Kotlin代码来完成这项工作:

inline fun File.mapLines(crossinline transform: (line: String) -> String) {
    val tempFile = createTempFile(prefix = "transform", suffix = ".txt")
    tempFile.printWriter().use { writer ->
        this.forEachLine { line -> writer.println(transform(line)) }
    }
    check(this.delete() && tempFile.renameTo(this)) { "failed to replace file" }
}

用法示例:

val pathToFile = "abc.txt"
var index = 0
File(pathToFile).mapLines { line -> "${line}smth${++index}" }

如果您使用的是Java 1.7+,那么您可以使用Files.move而不是delete/ renameTo:

Files.move(tempFile.toPath(), this.toPath(), StandardCopyOption.REPLACE_EXISTING)

另请参阅Kotlin中匹配后写入文件.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有