我在Scala接受了测试:
import java.nio.file._
import PathImplicits._
import java.io._
test("Paths should have a .write method to create files") {
val p = Paths.get("test.txt")
val contents = "This should write a file"
try {
p.write(contents)
assert(new String(Files.readAllBytes(p)) == contents)
}
finally {
Files.deleteIfExists(p)
}
}
然而,当我运行它时,我收到一个错误:
value write is not a member of java.nio.file.Path
[error] p.write(contents)
我错过了哪种导入?我认为java.nio.file._
会涵盖这一点。
答案 0 :(得分:1)
Path和Paths类都没有write方法。我想你正在寻找java.nio.file.Files.write
方法。以下是修复代码的方法:
test("Paths should have a .write method to create files") {
val p = Paths.get("test.txt")
val contents = "This should write a file"
try {
Files.write(p, contents.getBytes) // consider using a charset here
assert(new String(Files.readAllBytes(p)) == contents)
}
finally {
Files.deleteIfExists(p)
}
}
答案 1 :(得分:-1)
我不确定您是否缺少导入,此错误表示编译器无法像其他人提到的那样在类write
上找到方法名Path
。但是,这可能是导入问题的一种方法,您可能错过了对隐式转换的导入。在这种情况下,导入的代码看起来应该是这样的
implicit class PathImplicits(val p: Path) {
def write(x: Any) = ???
}