Supongamos que tengo un OutputStream
(y no unObjectOutputStream
). ¿Es posible enviar un objeto serializado usando el método de escritura? ¡Gracias!Serializar objeto con outputtream
Respuesta
aquí es lo que haces para serializar el objeto
new ObjectOutputStream(outputStream).writeObject(obj);
si desea controlar el byte [] de salida
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(buffer);
oos.writeObject(obj);
oos.close();
byte[] rawData = buffer.toByteArray();
ps. thx para los comentarios a continuación, editado como corresponde
También debe agregar texto descriptivo para que no sea solo una respuesta correcta sino también _good_. –
Necesita 'writeObject()', no 'write()'. Y una llamada a 'flush()' sería útil. –
Debe tener que utilizar la clase ObjectOutputStream y sus métodos para objetos *serialize*
. De hecho, ObjectOutputStream
es una subclase de java.io.OutputStream
(es una superclase abstracta de flujos orientados a bytes). Echar un vistazo a un artículo sobre Java Serialization API.
EDIT: Puede utilizar XMLEncoder
(desde el Doc: La clase XMLEncoder es una alternativa complementaria a la ObjectOutputStream y puede utilizar para generar una representación textual de un JavaBean de la misma manera que el ObjectOutputStream se puede utilizar para crear representación binaria de objetos serializables)
hay más de una forma de serializar un Objeto; no tiene que usar ObjectOutputStream – Hachi
Puede usar ObjectOutputStream para "capturar" los datos de los objetos en una matriz de bytes y enviarlos al OutputStream.
String s = "test";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(s);
byte[] byteArray = baos.toByteArray();
for (byte b : byteArray) {
System.out.print((char) b);
}
Otra opción no genérica sería serializar el objeto en una representación de cadena, por ej. CSV
Esto es trivial: sólo tiene que envolver el original OutputStream
en una nueva ObjectOutputStream
, y luego usar los métodos especializados de ObjectOutputStream
:
OutputStream myOriginalOutputStream = ...;
ObjectOutputStream oos = new ObjectOutputStream(myOriginalOutputStream);
oos.writeObject(new MyObject());
oos.flush();
oos.close();
Internamente, ObjectOutputStream
llamará a los OutputStream
subyacentes 's write()
método.
- 1. serializar el objeto con los subelementos C#
- 2. XML Serializar objeto dinámico
- 3. Serializar objeto en GWT
- 4. Serializar el objeto a XmlDocument
- 5. cómo serializar/deserializar arrayList (Objeto)
- 6. Serializar un objeto a JSON
- 7. Serializar diccionarios con JavaScriptSerializer
- 8. Serializar un objeto con restsharp y pasarlo a WebApi no serializar la lista
- 9. cómo serializar XML a un objeto JSON con Json.NET
- 10. JSON serializar un objeto con parámetros de la función
- 11. Cómo serializar propiedad de tipo de objeto con XmlSerializer
- 12. Serializar objeto al elemento con atributos e hijos
- 13. .NET: ¿Cómo serializar binariamente un objeto con el atributo [DataContract]?
- 14. ¿Cómo serializar/deserializar un objeto SimpleXML?
- 15. Serializar/deserializar objeto-gráfico PHP a JSON
- 16. ¿Serializar un objeto a JSON, XML, YAML?
- 17. Serializar un objeto Java a código Java?
- 18. Serializar un objeto de espuma en python
- 19. StackOverflowError al serializar un objeto en Java
- 20. Serializar objeto javascript a json y volver
- 21. ¿Es posible serializar automáticamente un objeto C++?
- 22. ¿Cómo serializar el objeto al archivo CSV?
- 23. ¿Puedo serializar un objeto tipo C#?
- 24. ¿Es posible serializar un objeto LINQ?
- 25. ¿Qué significa serializar datos o un objeto?
- 26. Cómo serializar el objeto JSON en java
- 27. JSON.net Serializar objeto C# a JSON Problema
- 28. Cómo serializar un objeto en una cadena
- 29. Serializar un POJO a JSON con GSON
- 30. Serializar XNA rectángulo con Json.NET
puede escribir cualquier dato con un OutputStream. lo más simple es hacer un byte [] de su objeto – Hachi