我需要导入文件并将其转换为字符串:
样本输入文件为:
#doc source topic proportion ...
0 src/main/resources/alpha1234 128 0.0651366607249073 26 0.05985658726301475 105 0.047919029870909846 173 0.04677118781397669
我只需要文件第二行中的一部分字符串。 那是第二行的第三个单词。
预期的输出字符串
128 0.0651366607249073 26 0.05985658726301475 105 0.047919029870909846 173 0.04677118781397669
直到现在我都尝试过:
val inFile = Source.fromResource("FileName").getLines.mkString(" ").drop(1)
val out = new BufferedWriter(new FileWriter("src/main/resources/newResult.txt"))
out.write(inFile)
out.close()
但是,它不是删除第一行,而是仅删除第一个字母。
答案 0 :(得分:4)
问题是您要先致电mkString
,然后再致电drop
。函数mkString
将Iterator[String]
转换为String
,当您调用drop
时,它可用于 chars 。让我们反转顺序:
val lines = Source
.fromResource("FileName")
.getLines
.toList // we convert Iterator to List to allow pattern matching
.drop(1) match { // we drop 1st line and then match the rest
// we match 1st line, split it by space, drop 2 first words and then assemble everything back together
case x :: xs => x.split(" ").drop(2).mkString(" ") :: xs
}
val inFile = lines.mkString(" ")