在Java中,我可以轻松地使用以下代码,将ByteArrayOutputStream
写入文件。但是,try-with-resources
在 Groovy 中不起作用:(
ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename")) {
byteArrayOutputStream.writeTo(outputStream);
}
我一直在尝试关注类似 http://mrhaki.blogspot.co.uk/2009/11/groovy-goodness-readers-and-writers.html 的链接 和 所以在这里回答IntelliJ error - java: try-with-resources is not supported in -source 1.6 error. Even though in project settings 1.7 JDK is selected
但我无法想到 Groovy 语法,可以将上面的 java 代码块编写为。 您能在这里稍微指导一下如何在 Groovy 中编写上面的 java 代码块吗?
PS:我使用的是 Groovy v2.4.12
最佳答案
Groovy 的 try-with-resources 替代方案方法如下:
.withClosable(Closure cl)
.withOutputStream(Closure cl)
在您的情况下,以下示例会将数据从 ByteArrayOutputStream
写入给定的 File
:
final ByteArrayOutputStream os = new ByteArrayOutputStream()
os.withCloseable {
it << "Lorem ipsum dolor sit amet".bytes
}
new File("/tmp/lorem.txt").withOutputStream { stream ->
os.writeTo(stream)
}
println new File("/tmp/lorem.txt").text
在最后一行,我们打印 /tmp/lorem.txt
文件的当前内容:
Lorem ipsum dolor sit amet
希望有帮助。
关于groovy - 如何将 ByteArrayOutput 流写入 groovy 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746375/