Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Avšak * načítanie * celý obsah súboru do pamäte * je * spoločnou operáciou a proces vyzerá niečo také:
1. Otváranie súborov: Program používa systémové volanie (alebo funkciu knižnice), napríklad `open ()` (v c), `open ()` (v Python) alebo podobné funkcie v iných jazykoch. Tým sa vytvorí pripojenie k súboru na disku. Je zásadné, tento krok nenačíta súbor do pamäte; Iba sa pripravuje na čítanie. Operačný systém sa zaoberá podrobnosťami, ako napríklad nájsť súbor a overovanie povolení prístupu.
2. Čítanie súboru: Program potom používa funkcie ako `ret ()` (v C, Python a mnoho ďalších) na čítanie obsahu súboru. Funkcia `read ()` zvyčajne vyžaduje parameter určujúci počet bajtov na čítanie.
* pre menšie súbory: Celý súbor sa môže načítať do pamäte v jednej operácii `read ()` (alebo niekoľkých). To má za následok úplnú kópiu obsahu súboru v pamäti. Dáta sa zvyčajne ukladajú do vyrovnávacej pamäte (na tento účel je pridelená oblasť pamäte).
* pre väčšie súbory: Program môže čítať súbor v kúskoch (menšie časti súčasne). Tento prístup sa vyhýba vyčerpaniu pamäte. Program spracováva každý kúsok a potom ho môže zlikvidovať alebo uložiť do sofistikovanejšej dátovej štruktúry (napríklad databázový záznam alebo proces streamovania).
3. pridelenie pamäte: Ak je načítaný celý súbor, program musí prideliť dostatočnú pamäť na zadržanie obsahu súboru. Ak pridelenie zlyhá (nie je k dispozícii dostatok pamäte), program pravdepodobne zlyhá alebo vyhodí výnimku.
4. ZATVORENIE súborov: Po dokončení programu pomocou súboru je nevyhnutné ho uzavrieť pomocou funkcie ako `close ()`. Tým sa uvoľní pripojenie k súboru a zaisťuje, že akékoľvek zmeny zapísané do súboru sú správne prepláchnuté na disk.
Príklad (ilustratívny python):
`` `Python
skúsiť:
s Open ("myFile.txt", "r") ako f:# otvára súbor; automaticky ho zavrie na konci bloku „s“
File_contents =f.Read () # číta celý súbor do premennej „File_Contents“.
# Process File_contents (napr. Vyhľadávanie, manipulácia atď.)
Okrem filenotfounderror:
Tlač („Súbor sa nenašiel!“)
Okrem výnimky ako e:
tlač (F "Vyskytla sa chyba:{e}")
`` `
Tento pythonový kód demonštruje načítanie celého súboru. Pre veľmi veľké súbory by ste ho chceli spracovať riadkom po riadku alebo v kúskoch, aby ste sa vyhli problémom s pamäťou, pomocou techník, ako sú iterátory alebo čítanie súboru v slučke s `f.readline ()` alebo `f.readlines ()`. Pamätajte, že dokonca `f.readlines ()` načíta celý súbor * do pamäte, aj keď ako zoznam riadkov, ktoré môžu stále spôsobiť problémy s príliš veľkými súbormi.