scala/javaにはPythonのStringIOのようなものがありますか?

java/scalaにPythonでStringIOとして "ファイルとして動作する文字列オブジェクト"があることを知りたいですか?私はそれが一時的なファイルの多くを読んで、読むことよりも良いと考えています。私はスカラが好きですが、Javaもうまくいくはずです。

7

3 答え

私は、 StringWriter は、再探しています。

11
追加された
それが私が探しているものなのかどうかはわかりません。私は文字列のように操作できるクラスがあるかどうかを知りたいが、FileをFileとして望む関数の引数として使うこともできる。
追加された 著者 Tg.,
それでよかった。私はPythonで頻繁に使用して以来、私はStringIOを使用したいと思います。私はまずそれを書き留めなければならないと思う。
追加された 著者 Tg.,
@Tg:いいえ、その場合、Fileは基本的にパスの周りのラッパーであるため、何もできません。コンテンツにアクセスするためのメソッドはありません。
追加された 著者 Michael Borgwardt,

これはどのように使用されているかによって異なります。 Javaで を使って何もしないでください!さて、権限の確認、作成などのタスクを除いて

Java とScala のすべてのI/Oは、次の2つの概念のいずれかに基づいています。

  • InputStream and OutputStream
  • Reader and Writer

あなたがするのは、パラメータとしてファイルを渡すこれらのクラスのいずれかを作成することです。したがって、使用しているAPIが File の受信を意図している場合、そのAPIについては何もできません。しかし、APIは通常、上記のクラスのうちの1つをとり、 File ではなく、すべてがstring-versionを利用できます。

Scalaに関しては、 String に基づいて作成することもできる scala.io.Stream もあります。

4
追加された
私の意図は、データがjava/scalaで生成されるので、ファイルを必要とする別の関数に渡す前にそれをディスクに書きたくないということです(ソースはありません)。しかし、私は自分のコードを書くときにそれを覚えています。明確な説明をありがとう。
追加された 著者 Tg.,

Javaには、 ByteArrayOutputStream があります。

OutputStream out = new ByteArrayOutputStream();
out.write(...);
String result = new String(out.toByteArray());
2
追加された