Как правильно закрыть объекты [дублировать]

Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это null.

Например:

string testString = null; //Because it doesn't have a value (i.e. it's null; "Length" cannot do what it needs to do)

if (testString.Length == 0) // Throws a nullreferenceexception
{
    //Do something
} 

Время выполнения .NET исключение NullReferenceException при попытке выполнить действие над чем-то, что не было инстанцировано, т.е. код выше.

По сравнению с ArgumentNullException, которое обычно выбрано как защитная мера, если метод ожидает, что то, что происходит

Дополнительная информация находится в C # NullReferenceException и Null Parameter .

93
задан skaffman 20 January 2011 в 21:38
поделиться

5 ответов

javadoc класса File описывает класс как:

Абстрактное представление имен файлов и каталогов.

File - это только представление пути, с несколькими методами, относящимися к файловой системе (например, exists()) и обработкой каталога, но фактические потоковые ввод и вывод выполняются в другом месте. Потоки можно открывать и закрывать, файлы не могут.

(Мое личное мнение заключается в том, что довольно неудачно, что Sun затем создала RandomAccessFile, вызывая много путаницы с его непоследовательным наименованием.)

112
ответ дан biziclop 26 August 2018 в 02:29
поделиться

java.io.File не представляет файл open , он представляет собой путь в файловой системе. Поэтому использование метода close на нем не имеет смысла.

На самом деле этот класс был неправильно назван авторами библиотеки, его следует называть как Path.

56
ответ дан axtavt 26 August 2018 в 02:29
поделиться

Предположим, у вас есть файл f = новый файл («SomeFile»); f.length (); Вам не нужно закрывать файлы, потому что его jsut представляет путь. Вы должны всегда рассматривать возможность закрытия только чтения / писателей и потоки информации.

2
ответ дан Balaji Boggaram Ramanarayan 26 August 2018 в 02:29
поделиться

BufferedReader можно открыть и закрыть, но файл никогда не открывается, он просто представляет путь в файловой системе.

4
ответ дан Saher Ahwal 26 August 2018 в 02:29
поделиться

По сути, файл произвольного доступа обертывает входные и выходные потоки для управления произвольным доступом. Вы не открываете и не закрываете файл, вы открываете и закрываете потоки в файл.

6
ответ дан Speck 26 August 2018 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: