Доброго дня!
Уже 2й день пытаюсь найти варианты как можно обработать огромный текстовый файл.
Суть задачи такова:
Мне приходит огромный текстовый xml файл размером около 10гб
Файл имеет такую структуру:
<organization typeof="Organization" about="http://opendata.trudvsem.ru/7710538364-organizations/organizations.xml#315910200403678">
<region rel="dc:references" resource="http://opendata.trudvsem.ru/7710538364-regions/regions.xml#9100000000000"/>
<name property="name">АЛИМЕНКО ДМИТРИЙ НИКОЛАЕВИЧ</name>
<creationDate>2022-03-05</creationDate>
<legalName>АЛИМЕНКО ДМИТРИЙ НИКОЛАЕВИЧ</legalName>
<companyStructureHidden>false</companyStructureHidden>
<ogrn>315910200403678</ogrn>
<inn>910504080415</inn>
<addressCode>9100000000000</addressCode>
<firstRateCompany>Не относится к крупнейшим компаниям</firstRateCompany>
<businessSize>SMALL</businessSize>
<source>EMPLOYMENT_SERVICE</source>
<innerInfo>
<codeExternalSystem>CZN</codeExternalSystem>
<dateModify>2022-03-13</dateModify>
<deleted>false</deleted>
<isModerated>true</isModerated>
<moderationTime>2022-03-13</moderationTime>
<registrationStatus>Получена по интеграции</registrationStatus>
<status>Одобрено</status>
<disableImportInfo>false</disableImportInfo>
<disableImportVacancy>false</disableImportVacancy>
<disableJoinCompany>false</disableJoinCompany>
<disableJoinManager>false</disableJoinManager>
</innerInfo>
</organization>
<organization>
...
</organization>
То есть в этом файле перечислено огромное кол-во организаций.
Мне нужно обработать этот файл, и реализовать что бы каждая организация находилась в отдельном файле.
То есть разделить этот огромный файл на большое число небольших файлов.
Сложность заключается в том, что обрабатывать этот файл целиком не получается.
Нужно как-нибудь считывать этот файл кусками, то есть прочел кусок, записал в файл, читаю след. кусок.
Вопрос - есть ли возможность прочитать файл только до первого попавшегося текста
</organization>
, выделить этот кусок данных записать в файл, и с остановившегося места продолжать читать дальше?
Может быть есть другие варианты решения задачи, но пока додумался только до описанного выше, то есть что бы в памяти процесса держались только небольшие обрабатываемые куски данных. Только я не знаю как это реализовать.