2016-10-17 1 views
2

Я видел this example, и я не видел метод close(), вызванный на InputStream, так же как и prop.load() закрыть поток автоматически? Или есть ошибка в примере?Свойства.load закрыли InputStream?

+1

Я просто проверил код java для загрузки (потока) и не закрыл поток. –

+2

Ошибка в примере. 'Properties.load()' не закрывает поток. Вы должны это сделать. Очень плохое качество. Это не будет работать даже в некоторых операционных системах. Не полагайтесь на произвольный интернет-мусор. Используйте учебники Oracle Java. – EJP

ответ

3

поток не закрыт после того, как Properties.load()

public static void main(String[] args) throws IOException { 

    InputStream in = new FileInputStream(new File("abc.properties")); 

    new Properties().load(in); 

    System.out.println(in.read()); 
} 

Приведенные выше возвращает код «-1», так что поток не закрыт. В противном случае он должен был быть выброшен java.io.IOException: Stream Closed

2

Почему вы спрашиваете, когда это говорит javadoc Properties.load(InputStream inStream)?

Указанный поток остается открытым после этого метода возвращается.

Было говорят, что с Java 6.

Как сказал EJP в comment: Не полагайтесь на произвольный Интернет мусор. Используйте официальную документацию Oracle Java в качестве основного источника информации.

Смежные вопросы