En C#, casi siempre uso el patrón using
cuando trabajo con objetos de transmisión. Por ejemplo:descarte de flujos en Java
using (Stream stream = new MemoryStream())
{
// do stuff
}
Al utilizar el bloque de using
, nos aseguramos de que disponen se llama en la corriente inmediatamente después de que el código se ejecuta Bock.
Sé que Java no tiene el equivalente de una palabra clave using
, pero mi pregunta es que cuando se trabaja con un objeto como un FileOutputStream
en Java, ¿necesitamos hacer algún mantenimiento para asegurarnos de que se elimine? Estaba mirando el ejemplo del código this, y noté que no hacen ninguno.
Me pregunto cuál es la mejor práctica para Java en el manejo de la eliminación de transmisiones, o si es lo suficientemente bueno como para permitir que el recolector de basura lo maneje.
¿Sabe si IOUtils.closeQuietly (transmisión) maneja una secuencia nula, de lo contrario podría arrojar NPE y causar el mismo problema (se come la excepción original). – dcp
sí, 'IOUtils' comprueba nulo antes del cierre, por lo que no hay riesgo de NPE – Bozho
genial, gracias por la respuesta. – dcp