Me gustaría saber si java/scala tiene el "objeto de cadena que podría actuar como archivo" como StringIO en python? Me imagino que sería mejor que escribir y leer una gran cantidad de archivos temporales. Yo prefiero Scala, pero Java también debería estar bien.¿Scala/java tiene algo así como StringIO de python?
Respuesta
Depende de cómo se utiliza esto. Usted ve, mientras que hace cosas con un archivo en Python, no hace nada con un File
en Java! Bueno, aparte de tareas como la comprobación de autorización, la creación, etc.
Todas las E/S en Java y Scala se basa en uno de los dos conceptos:
InputStream
yOutputStream
Reader
yWriter
lo que se hace es crear una de estas clases que pasan por un File
como parámetro. Por lo tanto, si la API que está utilizando tiene la intención de recibir un File
, no puede hacer nada al respecto. Sin embargo, las API generalmente tomarán una de las clases anteriores, no una File
, y todas ellas tienen una versión de cadena disponible.
En cuanto a Scala, también hay scala.io.Stream
, para lo cual también puede crear uno basado en String
.
Java tiene el ByteArrayOutputStream.
OutputStream out = new ByteArrayOutputStream();
out.write(...);
String result = new String(out.toByteArray());
Creo que StringWriter
es lo que estás buscando.
No estoy seguro si eso es lo que estoy buscando. Quiero saber si hay una clase que podría manipular como cadena pero también podría usar como argumento para la función que quiere File como parámetro. –
@Tg: No, en ese caso no hay nada que puedas hacer, porque File es básicamente un contenedor alrededor de una ruta, no tiene ningún método para acceder al contenido. –
Ok, entonces. Me gustaría utilizar StringIO ya que lo usé mucho en Python. Supongo que tengo que escribirlo primero. –
- 1. ¿Python tiene algo así como la palabra clave de C++?
- 2. ¿Tiene Python algo así como clases internas anónimas de Java?
- 3. Algo así como boost :: multi_index para Python
- 4. ¿Tiene Lisp algo así como la función takeWhile de Haskell?
- 5. ¿Tiene MongoDB algo así como Heidisql o phpmyadmin?
- 6. ¿Tiene Perl algo así como Java/PHP Docs?
- 7. ¿Tiene Python algo así como las variables de "estado" de Perl 5.10?
- 8. ¿Hay algo así como Codecademy para Java
- 9. Python: algo así como `map` que funciona en los hilos
- 10. Algo así como Tryparse de Convert.FromBase64String
- 11. ¿Hay algo así como "global ::" para VB.NET?
- 12. ¿Hay algo así como un modelo funcional?
- 13. Algo así como Apache Zookeeper sin Java?
- 14. ¿Existe algo así como XML 2.0?
- 15. ¿Hay algo así como AutoMapper para Scala?
- 16. ¿Hay algo así como indicadores en Lua?
- 17. ¿Hay algo así como Incanter para Haskell?
- 18. ¿Hay algo así como WMI para Linux?
- 19. ¿Hay algo así como `last` for` map`?
- 20. ¿Existe algo así como AJEDREZ para Java?
- 21. ¿Hay algo así como find_if en Java?
- 22. ¿Hay algo así como bpython para Ruby?
- 23. ¿Tiene Python algo tan robusto como el rvm de Ruby?
- 24. ¿Hay algo así como i en rango (longitud) en PHP?
- 25. Analizador de código fuente de Ruby (algo así como pylint)
- 26. ¿Tiene Common Lisp algo así como la interfaz de conjunto de Java/implementación de clases?
- 27. simplificar C++ código sencillo - algo así como pitones cualquier
- 28. ¿Hay algo así como sesión en la aplicación de Windows?
- 29. ¿Existe algo así como un fragmento de HTML5 válido?
- 30. ¿CSS tiene algo como jQuery's: has()?
Mi intención es que, dado que los datos se generan en java/scala, simplemente no quiero escribirlos en mi disco antes de pasarlos a otra función que requiera un archivo (del cual, no tengo una fuente de). Pero lo tendré en cuenta al escribir mi propio código. Gracias por una explicación clara. –