2010-07-21 21 views
15

Duplicar posibles:
“using” keyword in javaJava equivalente de C# 'usando' declaración

estoy transición de C# para java, así que por favor tengan paciencia conmigo ...

Al leer un archivo en C#, simplemente lo envuelve todo en un gran bloque de 'uso', de modo que si tiene una excepción, el archivo aún se cerrará. Al igual que (tal vez inexacta, pero se entiende la idea):

using(FileStream fs = new FileStream("c:\\myfile.txt")) { 
    // Any exceptions while reading the file here won't leave the file open 
} 

¿Hay un equivalente conveniente en Java 5 o 6? Me da la impresión de que últimamente Java ha estado "pidiendo prestado" algo del azúcar sintáctico de C# (como foreach) y entonces no me sorprendería si hay un equivalente de Java en usar estos días.

¿O simplemente tengo que usar un bloque try..finally? 'Uso' es sólo mucho más agradable que pienso ...

+5

Si afirma que una pregunta está duplicada, sería útil si proporciona un enlace a la pregunta que se supone que debe duplicar. Solo marcar cosas como duplicados no es útil en absoluto y hace que este sitio sea menos útil. Esta pregunta es un buen ejemplo de por qué debe proporcionar un enlace: cuando hago clic en la etiqueta "usar", obtengo 568 visitas, casi imposible de encontrar la respuesta original en una lista tan larga. Si busco [usar] [java], sigo recibiendo 24 hits y la respuesta que estoy buscando está en la * segunda * página de la lista de resultados: http://stackoverflow.com/questions/2943542/using- keyword-in-java –

Respuesta

22

No hay azúcar en la sintaxis equivalente utilizando declaraciones en Java 5 o 6. Sin embargo, un proposal para la gestión automática de recursos que añade una interfaz desechable familiarizado seems to have been accepted para Java 7. Hasta entonces, tienes que codificar manualmente un intento ... finalmente.

2

tiene que utilizar tratar .. finalmente

P. S. foreach (iteración sobre una colección) no es una invención de C#

+11

Pero 'foreach' es simplemente azúcar sintáctica, al igual que' using', que es el punto de OP. –

Cuestiones relacionadas