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)
}
当您运行该程序时,输出将为:
[这是一个, 测试文件。]
在上面的程序中,我们使用System
的user.dir
属性来获取存储在变量path
中的当前目录。有关更多信息,请查看Kotlin程序获取当前目录。
我们使用defaultCharset()
来设置文件的编码。如果您知道编码,可以使用它,否则使用默认编码是安全的。
然后,我们使用readAllLines()
方法从文件中读取所有行。它接受文件的path
和encoding
,并将所有行作为列表返回,如输出中所示。
由于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程序从文件内容创建字符串。