Scala Tmp文件中未创建任何数据
我有下面的scalatest,我需要创建一个临时文件并添加一些内容,调用main方法,然后查看是否生成了正确的输出 我可以看到在“/tmp”中创建的文件,但它总是空的。就像BufferedWriter没有向它写入一样。我做错了什么Scala Tmp文件中未创建任何数据,scala,java-io,Scala,Java Io,我有下面的scalatest,我需要创建一个临时文件并添加一些内容,调用main方法,然后查看是否生成了正确的输出 我可以看到在“/tmp”中创建的文件,但它总是空的。就像BufferedWriter没有向它写入一样。我做错了什么 "provided with a non empty file" should { import java.io.{BufferedWriter, File, FileWriter} val log: File = File.createTempF
"provided with a non empty file" should {
import java.io.{BufferedWriter, File, FileWriter}
val log: File = File.createTempFile("data", ".log")
log.renameTo(new File(log.getAbsolutePath + "data.log"))
val bw = new BufferedWriter(new FileWriter(log))
bw.write("This is the temporary file content")
bw.close()
log.deleteOnExit()
"print info" in {
val stream = new java.io.ByteArrayOutputStream()
Console.withOut(stream) {
val args = Array(log.getAbsolutePath)
main(args)
}
assert(stream.toString.trim == "This is the temporary file content")
}
}
}
在
bw.write
之后,你能尝试调用bw.flush
吗?尝试了之后,它就不起作用了。你认为我的测试是在文件写入之前完成的吗?是的,我认为测试是在它刷新到文件之前完成的,因为我在测试套件中添加了一个before和after,并将写入文件放在before中,测试就工作了现在,您可以尝试在bw.write
之后调用bw.flush
?尝试了之后,它就不起作用了。您认为我的测试是在文件写入之前完成的吗?是的,我认为测试是在文件刷新之前完成的,因为我在测试套件中添加了一个before和after,并将写入文件的操作放在before和the test中现在工作