Java-эквивалент выражения С# 'using'

Возможный дубликат:
"используя" ключевое слово в java

Я перехожу из С# в java, поэтому, пожалуйста, несите меня...

При чтении файла на С# вы просто переносите все это в большой блок "using", так что, если у вас есть исключение, файл все равно будет закрыт. Как и так (возможно, неточно, но вы поняли):

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

Есть ли удобный эквивалент в java 5 или 6? У меня создалось впечатление, что в последнее время java "заимствует" некоторые синтаксические сахара из С# (например, foreach), и поэтому я не удивлюсь, если есть java-эквивалент использования этих дней.

Или мне просто нужно использовать блок try..finally? "Использование" гораздо приятнее, чем я думаю...

Ответы

Ответ 1

Нет эквивалентного синтаксического сахара, использующего инструкции в Java 5 или 6. Однако для автоматического управления ресурсами, которое добавляет знакомый одноразовый интерфейс как представляется, было принято для Java 7. До тех пор вы должны вручную запрограммировать попытку... наконец.

Ответ 2

Придется использовать try.. finally

P.S. foreach (итерация по коллекции) не является изобретением С#