2011-11-25 103 views
7

我想知道如果java/scala在python中有作为StringIO的“可以充当文件的字符串对象”吗?我认为这比写和读大量的临时文件要好。我更喜欢scala,但是java应该也可以。Scala/java是否有类似Python的StringIO?

回答

3

这取决于如何使用它。你看,虽然你东西与Python中的文件,你不会做任何事情与File在Java!那么,除了任务,如在Java中和Scala检查权限,创建等

所有I/O是基于两个概念之一:

  • InputStreamOutputStream
  • ReaderWriter

你做的是创建这些类传递一个File一个参数。所以,如果你使用的任何API都有意收到File,那么你无法对此做任何事情。但是,API通常会采用上述类别之一,而不是File,并且它们都具有可用的字符串版本。

至于斯卡拉,还有scala.io.Stream,您也可以根据String创建一个。

+0

我的意图是,因为数据是在java/scala中生成的,所以我只是不想在将它传递给另一个需要文件的函数(我没有它的源代码)之前将它写在磁盘上。但是在编写自己的代码时我会记住这一点。感谢您的明确解释。 –

1

Java的ByteArrayOutputStream

OutputStream out = new ByteArrayOutputStream(); 
out.write(...); 
String result = new String(out.toByteArray()); 
11

我相信StringWriter是你要找的。

+0

我不知道这是我在找什么。我想知道是否有一个类可以像字符串一样操作,但也可以用作需要File作为参数的函数的参数。 –

+0

@Tg:不,在这种情况下,你无能为力,因为File基本上是一个路径的包装,它本身没有任何访问内容的方法。 –

+0

好的。我想使用StringIO,因为我在python中大量使用它。我想我必须先写下来。 –

相关问题