Есть ли в scala / java что-то вроде StringIO от python? - PullRequest
7 голосов
/ 25 ноября 2011

Я хотел бы знать, что если java / scala имеет "строковый объект, который может выступать в качестве файла" как StringIO в python? Я полагаю, что это было бы лучше, чем писать и читать много временных файлов. Я предпочитаю Scala, но Java тоже должно быть хорошо.

Ответы [ 3 ]

12 голосов
/ 25 ноября 2011

Я считаю, StringWriter - это то, что вы ищете.

5 голосов
/ 05 декабря 2011

Это зависит от того, как это используется. Видите ли, в то время как вы делаете вещи с файлом в Python, вы ничего не делаете с File в Java ! Ну, кроме задач, таких как проверка разрешения, создание и т. Д.

Все операции ввода-вывода в Java и Scala основаны на одной из двух концепций:

  • InputStream и OutputStream
  • Reader и Writer

создайте один из этих классов, передав File в качестве параметра . Так что, если какой-либо API, который вы используете, намеревается получить File, вы ничего не можете с этим поделать. Однако API обычно принимают один из вышеперечисленных классов, а не File, и для всех них доступна строковая версия.

Что касается Scala, есть также scala.io.Stream, для которого вы также можете создать его на основе String.

3 голосов
/ 25 ноября 2011

Java имеет ByteArrayOutputStream .

OutputStream out = new ByteArrayOutputStream();
out.write(...);
String result = new String(out.toByteArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...