跳到主要内容

Kotlin 程序:从文件内容创建字符串

在我们创建文件的字符串之前,我们假设我们的src文件夹中有一个名为test.txt的文件。

以下是test.txt的内容

这是一个
测试文件。

示例1:从文件创建字符串

import java.nio.charset.Charset
import java.nio.file.Files
import java.nio.file.Paths

fun main(args: Array<String>) {

val path = System.getProperty("user.dir") + "\\src\\test.txt"
val encoding = Charset.defaultCharset();

val lines = Files.readAllLines(Paths.get(path), encoding)
println(lines)

}

当您运行该程序时,输出将为:

[这是一个, 测试文件。]

在上面的程序中,我们使用Systemuser.dir属性来获取存储在变量path中的当前目录。有关更多信息,请查看Kotlin程序获取当前目录

我们使用defaultCharset()来设置文件的编码。如果您知道编码,可以使用它,否则使用默认编码是安全的。

然后,我们使用readAllLines()方法从文件中读取所有行。它接受文件的pathencoding,并将所有行作为列表返回,如输出中所示。

由于readAllLines也可能会抛出IOException,因此我们必须将我们的主方法定义为如下所示:

public static void main(String[] args) throws IOException

示例2:从文件创建字符串

import java.nio.charset.Charset
import java.nio.file.Files
import java.nio.file.Paths

fun main(args: Array<String>) {

val path = System.getProperty("user.dir") + "\\src\\test.txt"
val encoding = Charset.defaultCharset()

val encoded = Files.readAllBytes(Paths.get(path))
val lines = String(encoded, encoding)
println(lines)
}

当您运行该程序时,输出将为:

这是一个
测试文件。

在上面的程序中,我们不是获得字符串列表,而是获得了包含所有内容的单个字符串lines

为此,我们使用readAllBytes()方法从给定路径读取所有字节。然后,使用默认的encoding将这些字节转换为字符串。

以下是等效的Java代码:Java程序从文件内容创建字符串