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 (итерация по коллекции) не является изобретением С#