2009-03-15 2 views
0

я пытаюсь открыть большое количество файлов, но после 5000 файлов или так что я получаюУстройство не подключено исключение

Exception in thread "Main" java.io.IOException: The device is not connected 


Является ли это ожидаемое поведение? Есть ли способ обойти это? Я хочу оставить свой код максимально простым.

ответ

0

Открытый файл имеет некоторую стоимость в ресурсах, так что открытие другого файла происходит неудачно, когда многие файлы уже открыты, ожидается поведение. По крайней мере, это можно ожидать от меня самого.

смотри, например, это: http://www.msfn.org/board/lofiversion/index.php/t101414.html

0

Это не должно быть проблемой открытия тысячи файлов, если вы помните, чтобы закрыть() файлы, когда вы сделали их использования?

Если нет, вы вынуждаете операционную систему поддерживать состояние открытых файлов, что обычно является ограниченным ресурсом.

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

1
  • Ваша операционная система может ограничить количество файлов, которые может открыть один процесс.
  • Как правило, вы хотите быть осторожным с такими ресурсами, как открытые файлы в java. Если у вас нет конкретной причины держать все открытые, вам лучше читать каждый файл, извлекать нужные данные и затем закрывать.

Что именно вы пытаетесь достичь?

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