Как я могу прочитать файл, используя многопоточность - PullRequest
1 голос
/ 24 ноября 2011

У меня есть заархивированный файл CSV.

У меня есть расписание кварцевых заданий, которое читает файл. Но иногда пользователь может щелкнуть и прочитать файл также. Возможно ли, что если во время работы пользовательского файла открыт, а затем запускается расписание кварцевых заданий, и он также начинает чтение файла, и, поскольку это заархивированный CSV-файл, что-то может быть повреждено.

Специальное примечание: в файл нет операции записи.

Ответы [ 3 ]

2 голосов
/ 24 ноября 2011

Вы можете читать один и тот же файл в любом количестве потоков.

Он будет поврежден, только если вы напишите его в одном потоке и попытаетесь использовать его в другом одновременно.

0 голосов
/ 24 ноября 2011

Если у вас нет операции записи в файл, у вас не возникнет проблем с его чтением.

Вы можете прочитать его во всех темах.

Проблема придет, если вы попытаетесь ее написать.

Даже вы можете избежать этой проблемы, синхронизировав объект File.

0 голосов
/ 24 ноября 2011

Нет проблем читать один и тот же файл одновременно из нескольких потоков. Просто создайте отдельный FileInputStream для каждого потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...