Vis*_*hal 3 groovy fileoutputstream bytearrayoutputstream try-with-resources
在Java中,我可以轻松地使用以下代码将a写入ByteArrayOutputStream文件。但是,try-with-resources在 Groovy 中不起作用:(
ByteArrayOutputStream byteArrayOutputStream = getByteStreamMethod();
try(OutputStream outputStream = new FileOutputStream("thefilename")) {
byteArrayOutputStream.writeTo(outputStream);
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试关注http://mrhaki.blogspot.co.uk/2009/11/groovy-goodness-readers-and-writers.html等链接 ,所以在这里回答IntelliJ 错误 - java: try-with-resources 是-source 1.6 错误中不支持。即使在项目设置中选择了 1.7 JDK
但我无法想到 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
Run Code Online (Sandbox Code Playgroud)
在最后一行,我们打印/tmp/lorem.txt文件的当前内容:
Lorem ipsum dolor sit amet
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
8080 次 |
| 最近记录: |