Scala Tmp文件中未创建任何数据

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

我有下面的scalatest,我需要创建一个临时文件并添加一些内容,调用main方法,然后查看是否生成了正确的输出

我可以看到在“/tmp”中创建的文件,但它总是空的。就像BufferedWriter没有向它写入一样。我做错了什么

  "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中现在工作