Scala/java是否有类似Python的StringIO?
我想知道如果java/scala在python中有作为StringIO的“可以充当文件的字符串对象”吗?我认为这比写和读大量的临时文件要好。我更喜欢scala,但是java应该也可以。Scala/java是否有类似Python的StringIO?
这取决于如何使用它。你看,虽然你做东西与Python中的文件,你不会做任何事情与File
在Java!那么,除了任务,如在Java中和Scala检查权限,创建等
所有I/O是基于两个概念之一:
-
InputStream
和OutputStream
-
Reader
和Writer
你做的是创建这些类传递一个File
为一个参数。所以,如果你使用的任何API都有意收到File
,那么你无法对此做任何事情。但是,API通常会采用上述类别之一,而不是File
,并且它们都具有可用的字符串版本。
至于斯卡拉,还有scala.io.Stream
,您也可以根据String
创建一个。
Java的ByteArrayOutputStream。
OutputStream out = new ByteArrayOutputStream();
out.write(...);
String result = new String(out.toByteArray());
我相信StringWriter
是你要找的。
我不知道这是我在找什么。我想知道是否有一个类可以像字符串一样操作,但也可以用作需要File作为参数的函数的参数。 –
@Tg:不,在这种情况下,你无能为力,因为File基本上是一个路径的包装,它本身没有任何访问内容的方法。 –
好的。我想使用StringIO,因为我在python中大量使用它。我想我必须先写下来。 –
我的意图是,因为数据是在java/scala中生成的,所以我只是不想在将它传递给另一个需要文件的函数(我没有它的源代码)之前将它写在磁盘上。但是在编写自己的代码时我会记住这一点。感谢您的明确解释。 –