在Java中,我将GZIPInputStream包装在FileInputStream上并完成.如何在Scala中完成等效操作?
Source.fromFile("a.csv.gz")....
Run Code Online (Sandbox Code Playgroud)
fromFile返回一个BufferedSource,它真的想要将世界视为一个行集合.
有没有比这更优雅的方式?
Source.fromInputStream(new GZIPInputStream(new BufferedInputStream(new FileInputStream("a.csv.gz"))))
Run Code Online (Sandbox Code Playgroud)
Rex*_*err 23
如果你想使用Source
而不是用Java方式做所有事情,那么是的,你将不得不再添加一层包装到你在Java中做的事情. Source
需要InputStream
s但可以给你Reader
s,这会阻止你使用Source
两次.
Scala非常擅长让你从来没有比Java更多的工作,但特别是对于I/O,你经常需要回到Java类.(当然,您可以随时定义自己的快捷方式:
def gis(s: String) = new GZIPInputStream(new BufferedInputStream(new FileInputStream(s)))
Run Code Online (Sandbox Code Playgroud)
几乎比您已经输入的更长,现在您可以重复使用它.)
我将消除流构造中的BufferedInputStream用法 - > new GZIPInputStream(new FileInputStream("a.csv.gz"))
归档时间: |
|
查看次数: |
11785 次 |
最近记录: |